一.Unittest和Junit区别
Unittest是python的一个单元测试框架,Junit是Java的单元测试框架,二者之间没有关系.
二.常用的注解
@Test
@BeforeAll , @AfterAll
@BeforeEach , @AfterEach
先引入依赖
1. @Test
表明当前的方法是一个测试用例
2.@BeforeAll , @AfterAll
@BeforeAll: 当前class中所有测试用例执行之前自动执行
@AfterAll: 当前class中所有测试用例执行结束之后自动执行
3.@BeforeEach , @AfterEach
@BeforeEach:当前class中每一个测试用例执行之前执行一次
@AfterEach:当前class中每一个测试用例执行结束之后执行一次
三.测试用例顺序指定
四.参数化
1.单参数
单参数有他的弊端,只能接受一种类型的参数,对应的Test03(方法)只能接受一个参数x
2.多参数
参数化对应的注解上面如果写了Test,测试用例就会执行俩次,其中一次就会报错,因为Test和方法结合,没有找到参数,所以报错.
多参数通过文件传递参数
3.通过方法生成参数
五.测试套件
@Suite
六.断言
一,assert其实就是一种用来调试代码的方式,不能作为程序的功能。
assert只能在debug(调试)中使用,而非rerelsease(正式)中
二,assert是用于检查程序中不能发生的错误确实不会发生,
帮助我们定位错误,而不是排除错误,不是用来判断有可能发生的错误。
三,assert不能替代条件语句,只用来保证程序的合法性,但不代表程序正确性。
而if-else语句应该用于程序流控制,而assert关键字只应该用于测试目的.
你永远不应该使用asserts来实际执行你的应用程序所需的任何操作。
四,assert也不可以取代异常
assert用在那些你知道绝对不会发生的事情上,但是因为人总是会犯错误,保不准你写出来的东西跟你想的不一样。所以assert用来捕捉的是程序员自己的错误。
同理,exception捕捉的是用户或者环境的错误。