我创建了一个新的MVC解决方案,添加了单元测试,数据库模型(EDMX)和存储库代码。
我刚刚添加了一个非常简单的单元测试,以确认存储库将通过单元测试,并且它会因此错误而失败:
发生了'System.InvalidOperationException'类型的异常 EntityFramework.dll但未在用户代码中处理
其他信息:无法提供映射和元数据信息 找到EntityType'rlb.Models.rlb_Logins'。
为两个项目安装了实体框架。
失败的代码如下所示:
public BaseRepository()
{
dbContext = new DbContext("mapbsEntities");
// Unit Test Fails here
_objectSet = ((IObjectContextAdapter)dbContext).ObjectContext.CreateObjectSet<TEntity>();
}
正在测试的控制器代码:
public ActionResult RepoTest()
{
rlb_LoginsRepository<rlb_Logins> rlb_LoginsRepo = new rlb_LoginsRepository<rlb_Logins>();
rlb_Logins loginsRecord = rlb_LoginsRepo.Find(m => m.nid == 1).FirstOrDefault();
ViewBag.Message = loginsRecord.cLogin;
return View();
}
最后是单元测试代码:
[TestMethod]
public void LoginsTest()
{
HomeController controller = new HomeController();
ViewResult result = controller.RepoTest() as ViewResult;
Assert.AreEqual("mylogin", result.ViewBag.Message);
}
代码在生产中有效......但是我们想在开始编码之前对这个单元进行测试。
TIA, 标记