我正在编写 Bananagrams 的模拟。目前,我有一个GameMaster
维护公共片段集合的类。这deal(Player)
方法向该玩家分发一定数量的棋子。
我想为此编写单元测试。然而,此时我没有吸气剂,因此无法检查对象的状态。
为什么不添加吸气剂?我不想仅将代码添加到公共接口以进行测试。目前,没有其他理由公开这些功能。
我应该在这里做什么?无论如何添加吸气剂,使公共 API 变得混乱(或者希望将来需要它们)?放弃单元测试? (听起来是个坏主意。)
或者,这是否表明我的公共接口有缺陷?
不要依赖于 Player 的具体实例,而是将单元测试编写到接口(或等效项),并依赖模拟或其他交互来验证玩家是否处于正确的状态,而只是验证正确的调用(从GameMaster类的角度来看。
如果您在不依赖于验证 Player 的最终状态的情况下无法验证 GameMaster 类的正确行为,则表明您的职责放错了位置。游戏管理员应该负责告诉玩家what发生了,而玩家应负责采取适当的行动。
这也是一个好处,因为这意味着 GameMaster 的测试将仅依赖于 GameMaster 类的行为,并且如果 Player 类更改其行为,则不需要进行更改。
避免为单元测试添加吸气剂。当您想添加 getter 时,请考虑使用交互测试(正如我刚才所描述的)而不是基于状态的测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)