测试两种方式应该相同的东西

Svi*_*ish 1 tdd nunit unit-testing

例如Equals方法.a应该相等b而且b应该相等a.您是否可以在一个测试用例中使用以下两个断言检查此问题:

[Test]
public void Equals_TwoEqualObjects_ReturnsTrue()
{
    var a = new Something();
    var b = new Something();

    Assert.That(a.Equals(b), Is.True);
    Assert.That(b.Equals(a), Is.True);
}
Run Code Online (Sandbox Code Playgroud)

或者您认为这应该在两个单独的测试中完成,以便您在测试中不会有两个断言?

我想在这种情况下有两个断言可能更干净,因为我不确定我会称之为两个单独的测试,我有点认为哪个断言打破了测试并不重要.但无论如何,我很想知道其他人对此的看法,因为我是这个领域的新手:)

Jon*_*eet 6

我认为将它们放在一次测试中绝对没问题.

"每次测试一个主张"的想法更像是教条而不是对我有用的东西.务实地进行测试.

是的,每次测试测试一个功能 - 但不要将自己局限于一个断言.