【发布时间】:2012-05-05 17:57:27
【问题描述】:
假设我有这些测试功能:
def test_function_one():
assert # etc...
def test_function_two():
# should only run if test_function_one passes
assert # etc.
如何确保 test_function_two 仅在 test_function_one 通过时运行(我希望它是可能的)?
编辑: 我需要这个,因为测试二使用的是测试一验证的属性。
【问题讨论】:
-
你能解释一下你为什么需要这个吗?第一个测试是否设置了第二个使用的东西?这通常很糟糕。
-
这通常是脆弱测试的标志,这种测试依赖于比它测试的单元更多的东西,你确定你需要这样做吗? (可能)重构测试和/或被测代码以避免这种依赖性会更好。
-
@tjd.rodgers 但是,如果输入不正确,第二次测试也会失败,这难道没有意义吗?为什么你不想运行它?
-
@loganfsmyth 我曾想过,但我不希望第二次测试无缘无故地失败并污染测试结果,而问题确实出现在第一次测试中。
-
不要担心这个问题的回击。我认为这是一个值得提出的好问题,即使答案可能不是您最初的预期。没有什么不好的问题。