1
我正在使用JustMock和实体框架来尝试为服务编写单元测试。在服务上,我有这样的方法:在另一个类中用JustMock模拟一个实体框架类
List<Log> GetLogType(string type)
{
using (var db = new LogContext())
{
return db.Logs.Where(x => x.Type == type).ToList();
}
}
而且我有一个测试:
[TestMethod]
public void GetLogTypeTest()
{
IList<Log> logs = new List<Log>
{
new Log() {
Id = 1,
Type = "Debug",
Message = "Test Message"
}
};
var logContext = Mock.Create<LogContext>(Constructor.Mocked).PrepareMock();
logContext.Logs.Bind(logs);
var service = new LogService();
var debugs = service.GetLogType("Debug");
Assert.AreEqual(1, debugs.Count());
}
我如何用我的嘲笑方面的服务?现在它试图连接到数据库,从而出错。
谢谢,我猜我错误地接近它。要做很多重构,但这会起作用。 – RossD
没问题。如果没有依赖注入,你将无法执行很好的单元测试。如果你不希望使用DI仍然可以执行集成测试,但在这种情况下,你需要创建测试数据库并设置连接字符串指向DB在测试项目的app.config。 – kat1330