TDD学习日记
作者:互联网
最近在学习测试驱动开发(TDD)中在assert的使用上懵懵懂懂,记录一下加深记忆。平时写测试框架使用的assert的种类没有那么多,因为我是买了书去学习,书中使用的也不是很全
先介绍一下unittest的基本使用方法:
- import unittest模块
- 定义一个继承 unittest.TestCase 的测试用例类
- 定义 setUp 和 tearDown两个方法,tearDown的过程很重要,是为以后的TestCase留一个干净的测试环境。
- 定义测试用例,均要以test开头
- 一个测试用例只需要测试一个方面,测试的目的和测试内容要很明确。一般使用assertEqual、assertIn等断言方法去判断程序执行的结果和预期结果是否相符
- 调用 unittest.main() 开始跑测试用例
- 测试全部通过,不输出任何东西;若测试未通过,则会输出相应的错误提示。
在这里插入代码片
1.sertEquals(expected,actual) 和 assertNotEquals(expected,actual);
比较实际值与预期值是否一致。如果一致,程序继续运行,否则抛出 异常,会打印报错信息。常用断言方法,便于调试。
在这里插入代码片
2. assertTrue(message,condition) 和 assertFalse(message,condition)
如果条件的真假与预期相同,程序继续运行,否则抛出异常,不会打印报错信息。
在这里插入代码片
3.assertNull(message,object) 和 assertNotNull(message,object)
判断一个对象是否为空,如果结果与预期相同,程序继续运行,否则抛出异常。
在这里插入代码片
4.assertSame(expected,actual) 和 assertNotSame(expected,actual)
判断预期的值和实际的值是否为同一个参数(即判断是否为相同的引用),如果结果与预 期相同,程序继续运行,否则抛出异常。
assertSame(expected,actual) 和 assertEquals(expected,actual)的区别;
assertSame(A,B) ————————————> A==B
assertEquals(A,B)————————————>A.equals(B)
在这里插入代码片
5.fail(message)
“fail”断言能使测试立即失败,这种断言通常用于标记某个不应该被到达的 分支。例如测试中某个代码块要try catch,则在catch代码中加入 fail(message)方法,否则代码直接进入catch块,无法判断测试结果。
还有其他使用方法
assertIs(a,b,[msg=‘测试失败时打印的信息’]):若a是b,则测试用例通过
assertNotIs(a,b,[msg=‘测试失败时打印的信息’]):若a不是b,则测试用例通过
assertIsNone(x,[msg=‘测试失败时打印的信息’]):若x是None,则测试用例通过
assertIsNotNone(x,[msg=‘测试失败时打印的信息’]):若x不是None,则测试用例通过
assertIn(a,b,[msg=‘测试失败时打印的信息’]):若a在b中,则测试用例通过
assertNotIn(a,b,[msg=‘测试失败时打印的信息’]):若a不在b中,则测试用例通过
assertIsInstance(a,b,[msg=‘测试失败时打印的信息’]):若a是b的一个实例,则测试用例通过
assertNotIsInstance(a,b,[msg=‘测试失败时打印的信息’]):若a不是b的实例,则测试用例通过
assertAlmostEqual(a, b):round(a-b, 7) == 0
assertNotAlmostEqual(a, b):round(a-b, 7) != 0
assertGreater(a, b):a > b
assertGreaterEqual(a, b):a >= b
assertLess(a, b):a < b
assertLessEqual(a, b):a <= b
assertRegexpMatches(s, re):regex.search(s)
assertNotRegexpMatches(s, re):not regex.search(s)
assertItemsEqual(a, b):sorted(a) == sorted(b) and works with unhashable objs
assertDictContainsSubset(a, b):all the key/value pairs in a exist in b
assertMultiLineEqual(a, b):strings
assertSequenceEqual(a, b):sequences
assertListEqual(a, b):lists
assertTupleEqual(a, b):tuples
assertSetEqual(a, b):sets or frozensets
assertDictEqual(a, b):dicts
原文链接:https://blog.csdn.net/lala_peng/article/details/84304336
标签:actual,打印,TDD,学习,测试用例,测试,msg,message,日记 来源: https://blog.csdn.net/weixin_43283356/article/details/121796807