【问题标题】:MVC3 unit testingMVC3 单元测试
【发布时间】:2012-03-02 09:13:09
【问题描述】:

我是 mvc 3 的新手,我正在做单元测试。我正在测试一种搜索操作方法。此方法返回一个包含某种类型的通用列表的操作方法。如何测试返回的模型数据是否属于该指定类型? 请帮忙。

【问题讨论】:

    标签: asp.net asp.net-mvc-3 unit-testing


    【解决方案1】:

    在您的测试方法中,您在获得变量中的搜索结果后执行类型断言。这是 NUnit 的断言:

    var searchResults = SearcherUnderTest.Search("TestKeyword");
    
    Assert.IsInstanceOfType( Type expected, object searchResults );
    

    【讨论】:

      【解决方案2】:

      你的意思是你想在一个列表中测试 T 的类型吗?如果是这样,那么看看这个问题:How to get the type of T from a member of a generic class or method?

      或者您在为某个动作编写单元测试时需要帮助吗?然后:How to unit test an ActionResult that returns a ContentResult?

      用Nunit测试,测试搜索结果时通常是这样的:

      [Test]
      public void Search_ShouldReturnAListOfOrders()
      {
          var result = _controller.Search("searchParameter") as MyViewModel ;
      
          Assert.That(result, Is.Not.Null);
          Assert.That(result.SearchResults, Is.Not.Null);
          Assert.That(result.SearchResults.Count, Is.GreaterThan(0));
      }
      

      【讨论】:

      • 假设我有一个类屏幕模型和屏幕模型。屏幕模型包含 List。我的操作方法是搜索(字符串类型),它应该返回具有屏幕模型列表的屏幕模型。在我的单元测试中,我想检查操作方法是否返回“List”列表
      • 你在使用 Stubs/Mocks 吗?或者这是否也在测试数据库?无论如何,我会说你只需要测试列表不为空并且计数 > 0。
      • 谢谢。我使用 Assert.IsTue(returnModel is screenshotsmodel) 因为列表在屏幕模型类中
      • 是的,这与使用“as”关键字几乎相同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多