为了简单起见:首先,myFunction返回带有两个键的数组('foo'=> 1,'bar'=> 2),我正在测试它们是否存在。
后来的业务逻辑发生了变化,myFunction只返回一个键,数组('foo'=> 1)。
我应该: a)从单元测试中删除第二个键('bar')的测试? b)或直接测试myFunction的返回数组中是否存在此键?
第一个答案似乎更合乎逻辑 - 因为我没有测试任何其他键,如''blabla','xman')等等。但另一方面,我想确保我的逻辑更新到处都是。
答案 0 :(得分:1)
您应该根据当前要求进行测试。在您的情况下,它包括重构已正确完成:D
无论如何:
如果您的数组应仅返回foo
,则测试它是否仅返回foo
。如果它返回的值超过foo
或不同,则测试应该失败。如果您有密钥列表,则测试所有这些密钥是否有效。不能在测试设置中定义任何键。
答案 1 :(得分:0)
根据定义,单元测试意味着以原子方式测试一个功能。您可以使用红色,绿色,重构方法来解决该问题。这描述了TDD方法http://techno-fear-killer.blogspot.com/