对更新方法进行单元测试时要断言什么?

What to assert when unit testing an update method?

假设您想检查您的更新方法是否已正确更新,假设您更新了对象的所有字段,如果所有字段都已更改,您是否断言?

如果你有很多字段,你会如何检查是否所有字段都已更新?如果答案是你不应该检查所有字段,你如何保证所有字段都通过你的方法更新?

我正在使用 xUnit.Net,顺便说一句。

不,您没有断言所有字段都已更改,您断言每个字段都具有预期值。这甚至可能包括预计不会更新的字段:您可以断言它们的值未更改。

如果你想走捷径,你可以简单地计算对象的哈希码并断言哈希码是预期的,但是那里有很多地方可能出错,(一个字段可能有一个错误的值和哈希码可能仍然匹配,)并且每次将字段添加到可更新对象时修改测试代码会很麻烦,所以我建议不要使用这种快捷方式。