JustMock 및 Entity Framework를 사용하여 서비스의 단위 테스트를 작성하려고합니다. 서비스, 나는이 방법이 있습니다다른 클래스 안에 JustMock을 사용하여 Entity Framework 클래스 모의
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를 사용하지 않으려는 경우에도 통합 테스트를 수행 할 수는 있지만 테스트 데이터베이스를 만들고 테스트 프로젝트의 app.config에서 해당 DB를 가리 키도록 연결 문자열을 설정해야합니다. – kat1330