用鼻子测试顺序动作流水线的最佳方式是什么?
例如,如下所示的管道:
res1 = fun1(other_params1)
res2 = fun2(res1, other_params2)
res3 = fun3(res2, other_params3)一开始,我认为应该一个接一个地执行类中的所有测试,并将中间结果存储在类成员中。然而,这种方法似乎不起作用,因为中间测试的结果并没有真正保存下来,当我试图在下一次测试中访问它们(通过类成员)时,该测试总是会失败。
我可以挑选所有中间结果,并在下一次测试中重新加载它们。但是有没有更好的方法呢?
发布于 2014-03-18 22:46:20
为什么你不能这么做呢?
def test_func():
res1 = fun1(other_params1)
assert(res1...)
res2 = fun2(res1, other_params2)
assert(res2.….)
res3 = fun3(res2, other_params3)
assert(res3...)如果您有一个包含多个other_params*的复杂结构,则可以动态自动生成测试:
def fun1(a1):
return a1
def fun2(a1, a2):
return a1
def fun3(a1, a2):
return a2
def _seq_func(p1, r1, p2, r2, p3, r3):
actual_r1 = fun1(p1)
assert r1==actual_r1
actual_r2 = fun2(r1, p2)
assert r2==actual_r2
actual_r3 = fun3(r2, p3)
assert r3==actual_r3
def test_all():
test_list = [[1, 1, 1, 1, 1, 1],
[2, 2, 2, 2, 2, 2],
[1, 2, 1, 1, 1, 1],]
for test_vec in test_list:
yield _seq_func, test_vec[0], test_vec[1], test_vec[2], \
test_vec[3], test_vec[4], test_vec[5]https://stackoverflow.com/questions/22457751
复制相似问题