模拟中的访问字段

时间:2013-03-13 00:04:54

标签: c# reflection

我很难想象这一点。

以下是该方案。

我的单元测试

    public void AddStudentTest()
    {
        StudentService target = new StudentService (new Mock1(),new Mock2(), new Mock3(), new Mock4(), new Mock5());
        string name  = "Sample Name";
        int actual = 0;
        string[] userNames = new string[] {"Sample User Name" };
        string[] roleName = new string[] {"Sample Role" };
        target.AddStudent (name, userNames, roleNames);            
        Assert.IsNotNull(actual);
    }

我在Mock 3中测试一个方法。不幸的是,方法返回类型是VOID。我需要检查交易是否成功。我在这个方法“AddStudent”上添加了一个字段resultFlag但是如何从单元测试中访问它?

1 个答案:

答案 0 :(得分:0)

正如您所说的那样,您确实在测试Mock3方法,您可以访问该代码,因此我相信您的测试用例可能会被重写为

public void AddStudentTest()
{
    var dbMock = new Mock3()
    StudentService target = new StudentService (new Mock1(),new Mock2(), dbMock, new Mock4(), new Mock5());
    string name  = "Sample Name";
    int actual = 0;
    string[] userNames = new string[] {"Sample User Name" };
    string[] roleName = new string[] {"Sample Role" };
    target.AddStudent (name, userNames, roleNames);                    
    Assert.IsNotNull(dbMock.Students.FirstOrDefault())
}