首页 > 解决方案 > 如何将 TDD 用于预期对某些输入不执行任何操作的方法?

问题描述

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

标签: unit-testingtesting

解决方案


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

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

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

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


推荐阅读