单元测试
发布时间 :
字数:482
阅读 :
unittest
assert(断言):和if not expression:/n raise AssertionError /n AssertionError效果一样
使用unittest的TestCase编写单元测试
unittest1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| from ** import app #导入flask的app对象 class Mytest(unittest.TestCase): # 只要是以test开头的方法都会自动执行测试 def setUp(self): # 该方法会首先执行,方法名为固定写法 print('setUp') self.cli = app.test_client() #生成测试客户端
def tearDown(self): # 该方法会在测试代码执行完后执行,方法名为固定写法 print('tearDown') def test_wrong_mobile(self): print('test_wrong_mobile') mobile = '12345678901' ret = self.cli.get('/ret_mobile/%s' %(mobile)) # assert ret.status_code == 404 self.assertEqual(ret.status_code, 404) #效果和assert一样
def test_right_mobile(self): print('test_right_mobile') mobile = '13411111111' ret = self.cli.get('/ret_mobile/%s' % (mobile)) assert ret.status_code == 200 assert ret.data.decode() == mobile
if __name__ == '__main__': unittest.main()
|
使用TestSuite套件添加已有测试类
1 2 3
| suite = unittest.Testsuite() #创建套件实例 suite.addTest(类名('方法名'))或(类名.方法名) #添加测试的函数方法 suite.addTest(unittest.makeSuitw(类名)) # 添加需要运行的测试类
|
使用TextTestRunner套件执行测试套件实例
1 2
| runner = unittest.TextTestRunner() #创建运行实例 runner.run(suite) # 运行测试套件
|
使用defaultTestLoader添加测试类文件
1 2 3 4
| disconver = unittest.defaultTestLoader.discover('.py文件路径',pattern='*.py') # 匹配路径下的'*.py'文件 runner = unittest.TextTestRunner() runner.run(disconver)
|
断言:
1 2 3 4 5 6 7
| self.assertEqual(arg1, arg2,msg=None) #验证arg1=arg2,不等于就抛出错误 self.assertNotEqual(arg1, arg2, msg=None) #验证arg1!=arg2, 相等就抛出错误 self.assertTrue(expr, msg=None) # 验证expr是True,如果是False则抛出错误 self.assertFalse(expr, msg=None) # 验证ecpr为False,如果是True则抛出错误 self.assertlsNone(expr, msg=None) #验证expr为None,不是则抛出错误 self.assertlsNotNone(expr, msg=None) # 验证expr不为None,不是则抛出错误 self.assertIn(arg1, arg2, msg=None) # 验证arg1是arg2的子串,不是则抛出错误
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zoubinbf@163.com