目录
测试分类
Junit 单元测试就是白盒测试中的一种。
<aside> 💡 测试驱动开发:
所谓测试驱动开发,是指先编写接口,紧接着编写测试。编写完测试后,我们才开始真正编写实现代码。在编写实现代码的过程中,一边写,一边测,什么时候测试全部通过了,那就表示编写的实现完成了:
编写接口
│
▼
编写测试
│
▼
┌─> 编写实现
│ │
│ N ▼
└── 运行测试
│ Y
▼
任务完成
</aside>
为什么不使用 main()
方法进行测试?
main()
方法,不能和测试代码分离;所以我们需要一种测试框架来解决上述问题。
sprint-boot-starter-test
依赖,该依赖是一系列依赖的集合,并且能够很好地支持 Spring 容器为了防止功能缺失,直接引入 junit-jupiter
这个聚合项目即可。
package com.itranswarp.learnjava;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class FactorialTest {
@Test
void testFact() {
assertEquals(1, Factorial.fact(1));
assertEquals(2, Factorial.fact(2));
assertEquals(6, Factorial.fact(3));
assertEquals(3628800, Factorial.fact(10));
assertEquals(2432902008176640000L, Factorial.fact(20));
}
}
在测试方法内部,我们用assertEquals(1, Factorial.fact(1))
表示,期望Factorial.fact(1)
返回1
。assertEquals(expected, actual)
是最常用的测试方法,它在Assertion
类中定义。Assertion
还定义了其他断言方法,例如: