我有一份工作,我有一个IDisposable DbContext.我想在没有进入数据库的情况下对这项工作进行单元测试.我有什么选择呢?
我正在使用微软的默认Fakes程序集.
我的工作:
public void Work()
{
do
{
//code here
using (var repository = new Repository<User>())
{
repository.Save(user);
}
} while (true);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试测试并且在测试的这一部分中它失败了,因为它实际上创建了一个Repository类的新实例.
我的测试方法:
using (ShimsContext.Create())
{
Data.Repository.Fakes.ShimRepository<Domain.Fakes.ShimUser>.Constructor = (a) => { };
Data.Repository.Fakes.ShimRepository<Domain.Fakes.ShimUser>.AllInstances.SaveT0 = (a, b) =>
{
};
var service = GetService();
service.Work(); //Throws exception
}
Run Code Online (Sandbox Code Playgroud)
我该如何伪造这种Save方法?
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |