Ste*_*lie 38 python unit-testing
Python的内置unittest模块使用TestCase.assert*方法进行断言:
class FooTest(TestCase):
def test_foo(self):
self.assertEqual(1,1)
self.assertNotEqual(1,2)
self.assertTrue(True)
Run Code Online (Sandbox Code Playgroud)
我通常使用一个testrunner,如nose或py.test,它允许assert在进行断言时使用内置关键字:
assert 1 == 1
assert 1 != 2
assert True
Run Code Online (Sandbox Code Playgroud)
unittest TestCase.assert*方法的动机是什么,以及使用内置assert关键字断言的优点和缺点是什么?有没有理由说为什么单元测试的语法应该受到青睐?
Tho*_*ers 25
assert关键字的问题在于,当Python以"优化"模式运行时(使用参数或设置了环境变量),它被优化,因此被忽略.如果要使用测试,那么测试将是不可能的.-OPYTHONOPTIMIZEassert-O
另外,断言方法的使用使得报告实际所涉及的值是多么微不足道,而不必深入研究堆栈和源,并弄清楚它们应该是什么(我相信,这是技术nose和py.test用于此.)
| 归档时间: |
|
| 查看次数: |
7727 次 |
| 最近记录: |