一种新的单元测试的方法
作者:网络转载 发布时间:[ 2011/10/31 14:11:00 ] 推荐标签:
也提供一套验证该接口行为的测试类。因此每个实现者需要提供他们自己的实现,并且运行API设计者提供的测试,来保证实现类不仅是类型安全的,也是行为安全的。TestedBy传递给测试类一个被测试接口的实体类,并调用接口定义好的测试。
这是一个使用TestedBy的例子:我们已经添加了@TestedBy注释在API接口,并提供一个@BeforeTestedBy注释来提供一个接口的实例。TestedBy将在实现类APIImplOne和APIImplTwo上运行shouldAddTwoAndThree,测试在第一个类上成功而在第二个类上失败。
Java代码
1. public interface APIInterface {
2. @TestedBy( testClass = "it.javalinux.testedby.APITest", testMethod = "shouldAddTwoAndThree" )
3. public int add(int a, int b);
4. }
5.
6. public class APIImplOne {
7. public int add(int a, int b) {
8. return a + b;
9. }
10.
11. public class APIImplTwo {
12. public int add(int a, int b) {
13. return a - b;
14. }
15.
16. public class APITest {
17.
18. private APIInterface instance;
19.
20. @BeforeTestedBy
21. public beforeTestedBy(APIInterface instance) {
22. this.instance = instance;
23. }
24.
25. public void shouldAddTwoAndThree() {
26. assertThat(instance.add(3,2), is(5));
27. }
28.
29. }
当然,我使例子尽量简单,但是TestedBy有更多的注释,比如当没有参数的构造函数的简单反射调用时,被测试类的实例工厂能被指定,这些注释还远远不够。
2、在当前工作的类上运行测试
你写一个测试类来检验代码的正确性。很多时候,你写单元测试来保证代码的改变不会影响正在工作的代码,或者其他同事正在用的代码。你如何做呢?你可能改变你的代码,然后跑所有的涉及到修改的类的测试类。然后,后你跑所有的测试来保证你没有影响到其他代码。
那么让你的IDE第一步做什么呢?它编译你修改的类,并同时运行对应的测试类?既然你或者你的IDE能够运行测试类,testedBy让这个成为可能。一个eclipse插件能做这些工作,针对你修改的类来运行相应的测试类,以验证没有破坏你的测试集,不仅仅是在编译阶段,也能在你写代码的时候。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11