用于模拟的实体存储

本文关键字:存储 实体 模拟 用于 | 更新日期: 2023-09-27 18:08:34

我们想在应用程序中模拟一些服务(通常是外部的)。mock的实现应该依赖于在XML中易于编辑的数据实体。

例如,mock平凡方法GetUsers:

class UserServiceMock : IUserService
{
    public List<User> GetUsers()
    {
        return MockRepository.Get<User>();
    }
}

用户列表应该在 users .xml:

中可编辑
<Users>
    <User id="1" name="TestUser" />
</Users>
实体当然可以是复杂的类。它应该很容易添加和配置新的实体。

实现这种模拟的最佳方法是什么?

用于模拟的实体存储

对于单元测试,我不会依赖于用户可编辑的文件来提供模拟数据。相反,请使用Rhino。mock模拟IUserService,并返回unit测试所需的数据。

var userService = MockRepository.GenerateStub<IUserService>();
userService.Stub(s => s.GetUsers()).Returns(new [] {
    new User { id = 1, name = "TestUser" }
    };

我通常使用种子数据(如"users.xml")进行集成/压力测试。