我最近问了这个question,并意识到我还想知道是否有办法通过断言式测试实现'期望'隔离。我复制并粘贴了一个关于'期望'隔离的简单例子。
我相对较新的Python,来自Ruby / JavaScript,并且拥有像Rspec和Jasmine这样的测试库,使我能够在测试单个函数时隔离“期望”。因为似乎没有一个主动维护的'期望'风格的Python库,我想知道是否有办法用unittest或pytest实现等效的测试风格(我理解的两个最流行的Python测试库) )。
foo.py
class Foo():
def bar(self, x):
return x + 1
期望样式/描述-它
test_foo.py
describe Foo:
describe self.bar:
before_each:
f = Foo()
it 'returns 1 more than its arguments value':
expect f.bar(3) == 4
it 'raises an error if no argument is passed in':
expect f.bar() raiseError
单元测试/断言式
test_foo.py
class Foo():
def test_bar(x):
x = 3
self.assertEqual(4)
x = None
self.assertRaises(Error)
答案 0 :(得分:1)
unittest
模块是标准库的一部分。
class TestFoo(unittest.TestCase):
def setUp(self):
self.f = Foo()
def test_bar(self):
self.assertEqual(self.f.bar(3), 4)
def test_missing_argument(self):
self.assertRaises(TypeError, self.f.bar())