我有一个使用MVC 3和Entity Framework创建的Web应用程序。我想开始使用单元测试,但到目前为止,由于系统与数据库的对话方式,我无法运行任何单元测试。
我有一个BaseController,它将DataContext定义为变量:
public class BaseController : Controller
{
public Models.MyEntities DataContext = new Models.MyEntities();
然后每个控制器继承BaseController,从而使DataContext变量可供所有控制器使用,而无需重新定义它:
public class ErrorController : BaseController
{
当我运行单元测试时,我收到一个关于对象引用未设置为对象实例的错误,每次都引用我访问DataContext的行。
大多数对单元测试的引用都说你应该抽象你的数据库层,并使用假数据进行测试。这对我来说似乎是违反直觉的,但这是一个不同的讨论。
我的问题是 - 是否可以在系统配置的情况下使用单元测试?我愿意使用任何可用的测试框架,MSTest,NUnit / XUnit等。