我正在用pytest为我的python应用程序编写单元测试
我正在测试的模块有许多方法将被依次调用,它们的返回将被用作其他方法的参数。简言之,我拥有的是这样的东西:
def foo_1():
#load file and do stuff
return bar_1
def foo_2(arg1):
#do stuff with arg1
return bar_2
def foo_3(arg1, arg2):
#do stuff with arg1 and arg2
return bar_3
x = foo_1()
y = foo_2(x)
z = foo_3(x,y)
非常基本的东西,这是我正在进行的测试:
import foo_app
class TestClass:
def test_foo_1(self):
self.x = foo_app.foo_1()
#never mind the assertions
assert 0 == self.x
def test_foo_2(self):
self.y = foo_app.foo_2(self.x)
#never mind the assertions
assert 1 == self.y
def test_foo_3(self):
self.z = foo_app.foo_3(self.x, self.y)
#never mind the assertions
assert 3 == self.z
但是,我想知道这是否是单元测试的一个好实践,如果不是,那么处理这种依赖于以前方法的执行来实现结果的场景的最佳方法是什么
您可以使用yield实现所需的行为。可以用来维持执行顺序
查看这个资源,他详细解释了它的工作原理。
https://youtu.be/7lmCu8wz8ro?t=4635
相关问题 更多 >
编程相关推荐