当前位置: 首页 > news >正文

潍坊网站制作策划网站优化排名易下拉系统

潍坊网站制作策划,网站优化排名易下拉系统,广源建设集团有限公司网站,joomla drupal wordpress参数化单元测试的总体思路是对不同的数据运行相同的测试方法。 在JUnit 4中创建参数化测试远非完美。 现有体系结构存在许多问题#xff1a;将参数定义为类字段#xff0c;并且需要使用构造函数来创建它们#xff0c;不能将参数化和非参数化测试混合在一个测试类中#xff… 参数化单元测试的总体思路是对不同的数据运行相同的测试方法。 在JUnit 4中创建参数化测试远非完美。 现有体系结构存在许多问题将参数定义为类字段并且需要使用构造函数来创建它们不能将参数化和非参数化测试混合在一个测试类中并且内置数据源非常有限。 幸运的是所有这些都在JUnit 5中得到了改进 注意作为JUnit 4参数化测试的替代方法您可以使用JUnitParams库来解决我提到的许多问题请在此处查看有关JUnitParams的博客文章 http : //blog.codeleak.pl/2013/12/parametrized-junit- tests-with.html 。 如何开始 要开始在Junit 5中进行参数化测试您需要向项目添加必需的依赖项向项目添加org.junit.jupiter:junit-jupiter-params:${junitJupiterVersion}依赖项以使用参数化测试参数提供程序和转换器。 SUT –被测系统 我创建的所有示例都在测试FizzBu​​zz类 public class FizzBuzz {private static final int THREE 3;private static final int FIVE 5;public String calculate(int number) {if (isDivisibleBy(number, THREE) isDivisibleBy(number, FIVE)) {return FizzBuzz;}if (isDivisibleBy(number, THREE)) {return Fizz;}if (isDivisibleBy(number, FIVE)) {return Buzz;}return String.valueOf(number);}private static boolean isDivisibleBy(int dividend, int divisor) {return dividend % divisor 0;} } 尽管FizzBu​​zz非常简单但是它也可以用于演示更高级的单元测试技术例如实现参数化测试。 我在JUnit 5中的第一个参数化测试 要在JUnit 5中创建参数化测试请使用org.junit.jupiter.params.ParameterizedTest 而不是Test 注释测试方法并提供参数来源 ParameterizedTest(name {index} calculate({0})) ValueSource(ints {1, 2, 4, 7, 11, 13, 14}) public void returnsNumberForNumberNotDivisibleByThreeAndFive(int number, TestInfo testInfo) {assertThat(fizzBuzz.calculate(number)).isEqualTo( number); } 注释具有可选的name属性用于自定义调用显示名称。 可用的模板变量{index}-当前调用索引从1开始{arguments}-完整的逗号分隔的参数列表{0}{1}…-一个单独的参数。 在此示例中 org.junit.jupiter.params.provider.ValueSource提供对整数文字值数组的访问。 必须在此批注中提供一种输入类型字符串实例长整型或双精度型。 我还提供了由org.junit.jupiter.api.extension.ParameterResolver解析的其他参数。 请注意由参数源解析的方法参数需要在参数列表中排在首位。 更多论点来源 MethodSource ParameterizedTest(name {index} calculate({0})) MethodSource(names {divisibleByThree, divisibleByThreeButNotFive}) void returnFizzForNumberDivisibleByThree(int number) {assertThat(fizzBuzz.calculate(number)).isEqualTo(Fizz); } org.junit.jupiter.params.provider.MethodSource引用返回自变量源的方法1个或更多。 在此示例中有两种方法 private static StreamInteger divisibleByThree() {int[] ints new int[]{18, 21};return Stream.of(3, 6, 9, 12); }// The returned array will be converted to a Stream private static String[] divisibleByThreeButNotFive() {return new String[]{18, 21}; } 提供参数的方法必须是静态的不能包含任何参数并且必须返回StreamIterableIterator或数组。 您可能会注意到 divisibleByThreeButNotFive()方法返回一个字符串数组。 由于内置了隐式参数转换器因此可以很好地工作。 当参数源是CSV时这在下面有更多说明这确实很有用。 此外可以使用自定义参数转换器来转换参数。 要解析多个参数方法源将返回org.junit.jupiter.params.provider.Arguments实例流 org.junit.jupiter.params.provider.ObjectArrayArguments ParameterizedTest(name {index} calculate({0}) should return {1}) MethodSource(names {fizzBuzz}) void fizzBuzz(int number, String expectedResult) {assertThat(fizzBuzz.calculate(number)).isEqualTo(expectedResult); }private static StreamArguments fizzBuzz() {return Stream.of(ObjectArrayArguments.create(1, 1),ObjectArrayArguments.create(2, 2),ObjectArrayArguments.create(3, Fizz),ObjectArrayArguments.create(4, 4),ObjectArrayArguments.create(5, Buzz),ObjectArrayArguments.create(6, Fizz),ObjectArrayArguments.create(7, 7),ObjectArrayArguments.create(8, 8),ObjectArrayArguments.create(9, Fizz),ObjectArrayArguments.create(15, FizzBuzz)); } CsvFileSource 提供参数源的另一种非常有趣的方法是org.junit.jupiter.params.provider.CsvFileSource 它从类路径中的多个CSV文件之一中提供参数 ParameterizedTest(name {index} calculate({0}) should return {1}) CsvFileSource(resources {/fizzbuzz/fizzbuzz_1.csv, /fizzbuzz/fizzbuzz_2.csv}, delimiter ;) void fizzBuzzCsv(int number, String expectedResult) {assertThat(fizzBuzz.calculate(number)).isEqualTo(expectedResult); }其他论点 EnumSource提供了使用Enum常量的便捷方法。 CsvSource允许您将参数列表表示为以逗号分隔的值 ArgumentsSource可用于指定自定义可重用的参数提供程序。 享受JUnit 5中的参数化测试 资源资源 可以在GitHub上找到本文中介绍的所有示例 https //github.com/kolorobot/unit-testing-demo 查看官方的JUnit 5文档以了解更多信息 http : //junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests 翻译自: https://www.javacodegeeks.com/2017/06/cleaner-parameterized-tests-junit-5.html
http://www.zqtcl.cn/news/920331/

相关文章:

  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱
  • 专业的外贸网站建设wordpress后台编辑
  • 德清建设银行网站2016wordpress淘宝客程序
  • 网站建设包括两个方面专业网站设计企业
  • dnf可以去哪个网站做代练导购网站 模板
  • 苏州网站开发培训深圳福田区口岸社区
  • 信息网站开发网络公司jsp实战网站开发视频
  • 做 理财网站深圳网站快速优化公司
  • 公司网站建设方案江门建设建筑网站
  • 网站是生成静态好还是动态好怎么找到域名做的那个网站
  • 婚纱网站页面设计上海商地网站建设公司
  • 模板手机网站建设多少钱百度搜索词排名
  • 怎么学做网站住房和城乡建设部网站一级建造师