如何将TDD用于预期对某些输入无效的方法?

时间:2018-05-19 08:32:58

标签: unit-testing testing

我确信这是一个愚蠢的问题,但我根本不知道 - 假设我有一种方法,预计不会对某些输入做任何事情。比如,价值< 10,打印字符,否则什么也不做。 基本上,单元测试将通过实际方法或只有一个空体。如何为这样的实例编写失败的测试?

1 个答案:

答案 0 :(得分:0)

您的单位测试断言应基于单位可观察效果 - 返回值或(不幸的)副作用。有时你确实希望在模拟的帮助下测试行为而不是结果,但这会使测试变得脆弱。

如果您返回的值一切都很简单,您只需检查该值是否满足某些已知的后置条件。

如果出现副作用,您将被迫设置正确的测试环境(例如某些全局状态),然后检查它是如何更改的。对于您的具体示例,您可以重定向输出并稍后验证是否在小于10的值上写入了某些内容,并且没有其他内容写入。

所以通常你仍然想检查那个方法什么也没做,因为它是一个单独的执行流程。