在MVC3解决方案中测试数据访问层和业务逻辑的最佳方法是什么?
我目前有一个项目,在这个项目中我使用存储库类访问数据库,而数据库又使用hibernate。当我尝试在自动生成的单元测试中为它们创建单元测试时,它们总是失败,因为nhibernate的配置是在web.config中,并且它没有尝试在那里查找。我做错了什么?此特定方法返回此错误
"The Web request 'http://localhost:35601/' completed
successfully without running the test"测试方法如下所示
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\Users\\...", "/")]
[UrlToTest("http://localhost:35601/")]
public void GetByIdTest()
{
string someid= "..";
SomeObj actual = MyRepository.GetById(someid);
Assert.AreEqual(some, SomeObj.id);
}我怎样才能让它正常工作?
发布于 2012-05-21 00:27:17
将设置放在app.config中应该可以解决您上面提出的问题,然而,更正确的答案是您应该使用模拟框架来模拟nHibernate会话。
您找到了一个需要更改以适应测试的区域,这一事实非常棒!这是单元测试的一个优点;您会发现代码中存在应该重构的耦合。
我找到了另一篇文章,它直接介绍了你想要做的Mocking an NHibernate ISession with Moq。在这篇文章中有两个答案,它们提供了可能有帮助的方法。
我希望这能帮到你。我还没有用过nHibernate,所以我不能权威地谈论它,或者上面的链接会给你一个答案,但是每个答案都有十个赞成票,所以它看起来像是一个可靠的帖子!
https://stackoverflow.com/questions/10668734
复制相似问题