在单元测试AAA模式中提取数据

gdo*_*ica 4 c# unit-testing arrange-act-assert

在"AAA"模式中,应该写出行为数据的提取?
在法案或断言部分?

考虑这个单元测试,两个人的提取,如果它在例如示例中或在断言中?我们想为公司的所有UT制定标准.

[Test]
public void Test()
{
    // Arrange
    var p1 = new Person();
    var p2 = new Person();
    Session.Save(p1);
    Session.Save(p2);

    // Act
    var result = new PersonQuery().GetAll();
    var firstPerson = result[0];
    var secondPerson = result[1];

    // Assert
    Assert.AreEqual(p1.Id, firstPerson.Id);
    Assert.AreEqual(p2.Id, secondPerson.Id);        
}
Run Code Online (Sandbox Code Playgroud)

(请在这个简单的测试中忽略,我可以写Assert.AreEqual(p1.Id, result[0].Id);)
我知道这不是一个大问题,但我仍然想知道如何做到最好.

Dar*_*rov 7

这应该发生在Assert阶段:

[Test]
public void Test()
{
    // Arrange
    var p1 = new Person();
    var p2 = new Person();
    Session.Save(p1);
    Session.Save(p2);

    // Act
    var result = new PersonQuery().GetAll();

    // Assert
    var firstPerson = result[0];
    var secondPerson = result[1];
    Assert.AreEqual(p1.Id, firstPerson.Id);
    Assert.AreEqual(p2.Id, secondPerson.Id);        
}
Run Code Online (Sandbox Code Playgroud)

Act阶段仅涉及调用被测方法.