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