如何使用Rhino Mocks模拟其他类对象

时间:2015-08-19 13:15:47

标签: c# unit-testing mstest rhino-mocks

我使用Visual Studio 2013和MsTest进行单元测试,使用Rhino Mocks进行模拟对象。

有什么办法,我们可以模拟其他类对象

public class Organization 
{
    public DataSet GetUsers()
    {
       DataSet ds = new DataSet();

// Added some columns and rows here
// This class is interacting with the database. That's why I want to create 
// mock of this class.

       return ds;
    }
}

我的主要课程如下

public class Users 
{
    public DataSet GetUsers(Organization org)
    {
        DataSet ds = org.GetUsers();

        return ds;
    }
}

我的测试方法如下

[TestMethod]
public void GetUsersTest()
{
     DataSet ds = new DataSet();
     //added some mock rows and columns to this dataset

     var objOrg = MockRepository.GenerateMock<Organization>();
     objOrg.Expect(x => x.GetUsers()).Return(ds);

     Users obj = new Users();
     DataSet dsResult = obj.GetUsers(objOrg);
}

它给了我错误。 有人可以帮我为上一节课的GetUsers方法编写单元测试吗?

1 个答案:

答案 0 :(得分:0)

您的方法不是virtual方法。使用RhinoMocks模拟课程时,要覆盖的每个方法都必须是virtual方法。

将您的方法更改为:

public virtual DataSet GetUsers()
{
     DataSet ds = new DataSet();

        // Added some columns and rows here
        // This class is interacting with the database. That's why I want to create 
        // mock of this class.

     return ds;
}