zz测试接口_使用FizzBuzz和JUnitParams进行单元测试
zz测试接口
我有时使用FizzBuzz向新手演示单元测试的基础。 尽管FizzBuzz确实是一个简单的问题,但它也可以用于演示更高级的单元测试技术,例如实现参数化测试。
FizzBuzz的可能解决方案之一是:
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 boolean isDivisibleBy(int dividend, int divisor) {return dividend % divisor == 0;}
}
上面的示例非常适合显示JUnitParams的参数化测试。 我们可以创建4种测试方法,每种方法针对不同的FizzBuzz案例:
@Test
@Parameters({"1", "2", "4", "7", "11", "13", "14"})
public void returnsNumberForNumberNotDivisibleByThreeAndFive(int number) {assertThat(fizzBuzz.calculate(number)).isEqualTo("" + number);
}@Test
@Parameters({"3", "6", "9", "12", "18", "21", "24"})
public void returnFizzForNumberDivisibleByThree(int number) {assertThat(fizzBuzz.calculate(number)).isEqualTo("Fizz");
}@Test
@Parameters({"5", "10", "20", "25", "35", "40", "50"})
public void returnBuzzForNumberDivisibleByFive(int number) {assertThat(fizzBuzz.calculate(number)).isEqualTo("Buzz");
}@Test
@Parameters({"15", "30", "45", "60"})
public void returnsFizzBuzzForNumberDivisibleByThreeAndFive(int number) {assertThat(fizzBuzz.calculate(number)).isEqualTo("FizzBuzz");
}
但是我们也可以用一种参数化的测试方法涵盖所有情况:
@Test
@Parameters
public void fizzBuzz(int given, String expected) {assertThat(fizzBuzz.calculate(given)).isEqualTo(expected);
}public Object[] parametersForFizzBuzz() {return $($(1, "1"),$(2, "2"),$(3, "Fizz"),$(4, "4"),$(5, "Buzz"),$(6, "Fizz"),$(7, "7"),$(10, "Buzz"),$(15, "FizzBuzz"),$(30, "FizzBuzz"));
}
享受JunitParams !
- 看一下介绍单元测试不同方面的unit-testing-demo项目,包括参数化测试: https : //github.com/kolorobot/unit-testing-demo
翻译自: https://www.javacodegeeks.com/2014/11/unit-testing-exercise-with-fizzbuzz-and-junitparams.html
zz测试接口
zz测试接口_使用FizzBuzz和JUnitParams进行单元测试相关推荐
- mockito 单元测试_使用FizzBuzz和Mockito进行单元测试
mockito 单元测试 我有时使用FizzBuzz向新手演示单元测试的基础. 尽管FizzBuzz确实是一个简单的问题,但它也可以用于演示更高级的单元测试技术,例如模拟 . FizzBu ...
- 在java项目中咋样测试接口_请问java程序的接口中的测试类该怎么写?有什么用呢?...
可使用android自带的httpclient框架实现. 1. GET 方式传递参数 //先将参数放入List,再对参数进行URL编码 List params = new LinkedList(); ...
- mockito_使用FizzBuzz和Mockito进行单元测试
mockito 我有时使用FizzBuzz向新手演示单元测试的基础. 尽管FizzBuzz确实是一个简单的问题,但是它也可以用于演示更高级的单元测试技术,例如模拟. FizzBuzz Ka ...
- deepin中zz_如何解决R中的FizzBuzz问题
deepin中zz The FizzBuzz problem is a classic test given in coding interviews. The task is simple: Fiz ...
- kata_Java中的功能性FizzBuzz Kata
kata 不久前,我使用Java 8流和lambda解决了FizzBuzz kata问题. 尽管最终结果是可行的,但中间步骤却没有. 我当然可以做得更好. 与往常一样,让我们从失败的测试开始: ...
- Java中的功能性FizzBuzz Kata
不久前,我使用Java 8流和lambda解决了FizzBuzz kata问题. 尽管最终结果是可行的,但中间步骤却没有. 我当然可以做得更好. 与往常一样,让我们从失败的测试开始: pack ...
- 使用FizzBuzz和Mockito进行单元测试
我有时使用FizzBuzz向新手演示单元测试的基础. 尽管FizzBuzz确实是一个简单的问题,但是它也可以用于演示更高级的单元测试技术,例如模拟 . FizzBuzz Kata: &qu ...
- FizzBuzz Kata与Java流
在柔道练习仅几周之后,我的儿子感到无聊. 他抱怨说自己没有学任何东西,因为他一遍又一遍地做着同样的事情. 混淆学习和做新事物的不仅仅是幼儿. 例如,有多少软件开发人员通过执行kata或参加dojos来 ...
- 使用FizzBuzz和JUnitParams进行单元测试
我有时使用FizzBuzz向新手演示单元测试的基础. 尽管FizzBuzz确实是一个简单的问题,但它也可以用于演示更高级的单元测试技术,例如实现参数化测试. FizzBuzz的可能解决方案 ...
最新文章
- c# 取两个时间的间隔
- Matlab如何从dat或者txt文件读入数据
- linux下eclipse的使用教程,linux下Eclipse的使用方法总结.doc
- UVA11624大火蔓延的迷宫
- Oracle经典教程学习笔记
- keil生成hex文件找不到_骚操作!用Python把公众号文章打包成pdf文件,再也不怕找不到了...
- 电脑中病毒后被隐藏的文件的显示
- Nginx(三):反向代理
- javascript ~~canvas url blob转换
- Spring-MVC配置Gson做为Message Converter解析Json
- pre保持原格式但文本不超出的解决方案
- python爬虫实例评论_python爬取微博评论的实例讲解
- 怎样屏蔽浏览器关闭按钮及ALT+F4 快捷键
- Eclipse 远程开发插件 RSE 及远程登录
- 将ceph与calamari相连(connect ceph servers to calamari)
- 《PPT思维》第一课:PPT基础思维
- 塑胶材料的各种特性,热塑性塑料详解
- 【Azure Data Platform】ETL工具(8)——ADF 数据集和链接服务
- Epson针式打印机打印十六进制内容解决方案
- c++ leetcode 500-600