如何编写Unittest案例来检查返回视图?

时间:2013-10-04 16:40:51

标签: c# asp.net-mvc-3 entity-framework unit-testing

 AdvertisementDataContext db = new AdvertisementDataContext(); //make an object so that we can retrieve data from database

        public ActionResult Index()
        {

            var advertisement = db.Advertisements.ToArray(); // retrieve data from database
            return View(advertisement); // we return the object to the index view
        }

我为这段代码编写了一个测试用例。但是它没有给出错误

Error   1   The type 'System.Data.Entity.DbContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

我的测试方法是

[TestMethod]

public void TestIndex() {
    Bartering.Models.AdvertisementDataContext db = new Bartering.Models.AdvertisementDataContext();
    AdvertisementController controller = new AdvertisementController();
    ViewResult result = controller.Index() as ViewResult;
    Assert.AreEqual(db.Advertisements, result.ViewBag);


} 

请帮我解决这个问题,或者帮我写一个测试用例。

1 个答案:

答案 0 :(得分:2)

如果你认真对待 unit 测试这个,我认为你应该将数据上下文包装在一个可模拟的类中,并使用像NSubstitute之类的模拟框架在测试中模拟它。否则,您的测试可能会尝试访问某个数据库,这不适合单元测试。