我只是想知道是否有一种方法可以对我的一些 Controller Action 进行单元测试
不使用存储库模式的 MVC。我开发了一个 ASP.NET MVC 站点,但在初始阶段没有进行单元测试。现在我想向我的导师演示一些单元测试,使用我的 Controller 中可能有两个或多个 Action 。我的大部分操作逻辑从数据库获取数据,一个 Controller 从不同的表获取数据,即一个 Controller 中的操作从不同的表读取。我认为可以使用通用存储库模式进行测试。作为初学者,我发现我只能对不是来自数据库的代码进行单元测试,但不幸的是,我的 Controller Actions 中的大部分代码都来自数据库。我在我的数据库中使用 Visual Studio 中的默认测试工具和 EF 代码优先方法。
例如,我只想对以下操作进行单元测试,而不必对同一 Controller 中的其他操作进行单元测试。
public ActionResult Index()
{
var model = _db.PhotoGallery;
return View(model);
}
这只是为了演示目的。
最佳答案
根据定义,单元测试应该只影响它调用的方法。如果你能找到一种方法来模拟你的 _db 对象,这样你实际上不会导致数据库往返,那么你可以对依赖它的这个方法进行单元测试。否则,不。
_db
字段的类型是接口(interface)吗?它是通过注入(inject)提供的吗?如果是这样,您很可能可以对该方法进行单元测试。
关于c# - 如何在不使用存储库模式的情况下对 ASP.NET MVC Controller 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10091198/