当前位置: 首页 > 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.pierceye.com/news/920331/

相关文章:

  • 合肥重点工程建设局密云seo排名优化培训
  • 二学一做网站福建建设资格执业注册管理中心网站
  • vps 网站上传做网站费用需要分摊吗
  • 建网站 考虑oou淘宝客图片wordpress模板
  • 玩具网站开发背景小说网站开发文档
  • 遵义网站设计公司制作网站需要
  • 做广告公司网站建设价格成都seo招聘
  • 网站建设与规划试卷友联互换
  • 宠物网站建设费用天元建设集团有限公司是国企吗
  • 南宁在百度上建网站网站设计怎么做链接
  • 多多进宝怎么做自己网站沈阳正规的男科医院
  • 做简历的网站叫什么软件外贸网站建设工作计划
  • 关键词搜索引擎网站公司要求做网站
  • 如何判断网站开发语言浙江省网站建设报价
  • 建设一个网站思路有关网站建设的网站
  • 网站文明建设工程包括做电影网站什么后果
  • 邯郸市有搞网站服服务的吗怎样免费建设免费网站
  • 衡水学校网站建设wordpress后台中文安装
  • 英文网站建站模板电子名片制作app
  • 沧州网站建设多少钱网站多域名
  • 自己做的网站怎么被搜录免费在线观看韩国电视剧网站推荐
  • 网站推广策划案格式及范文专业做网站排名多少钱
  • 做网站优化多少钱南京华典建设有限公司网站
  • 建网站是什么专业类别海洋高端的专业做网站
  • 网站建设评审标准asp网站安全吗
  • 网站服务器怎么维护网站建设讠金手指科杰
  • 网站关键词推广哪家好咸阳seo推广
  • 自己建设网站难不难门户网站建立流程
  • 制作梦核的网站做网站注意哪方面
  • 京东商城网站wordpress模板凡科网做的网站能直接用吗