【发布时间】:2014-07-22 17:40:06
【问题描述】:
我最近问过这个question 并意识到我还想知道是否有一种方法可以通过断言式测试来实现“期望”隔离。我复制并粘贴了一个简单的例子来说明我所说的“期望”隔离。
我对 Python 比较陌生,来自 Ruby/JavaScript,并且拥有 Rspec 和 Jasmine 等测试库,这使我能够在测试单个函数时隔离“期望”。由于似乎没有积极维护的 Python 的“期望”式库,我想知道是否有办法使用 unittest 或 pytest(据我了解的 2 个最流行的 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)
【问题讨论】:
-
如果我错了,请纠正我,您是在询问在 python 中提供
describe/it/expect断言样式的模块? -
我确实在另一个问题中问过这个问题。这个问题旨在通过 unittest/pytest 的断言式测试实现相同的功能。 chepner 提供了一个我认为是正确的答案。
标签: python unit-testing tdd bdd