我是单元测试的新手,所以这可能是一个愚蠢的问题。
Usinf mvc 4 我有一个工作正常的视图。
我在顶部声明了我的模型,一切都很好。
然后我将我的模型提取到一个单独的库中,并忘记更改我的一个视图上的模型声明,因此是崩溃。
有没有办法对此进行单元测试?
我不想通过视图的页面标题来做到这一点,因为这可能会动态变化......
这是如何正常处理的,或者这不是通常测试的东西?
我是单元测试的新手,所以这可能是一个愚蠢的问题。
Usinf mvc 4 我有一个工作正常的视图。
我在顶部声明了我的模型,一切都很好。
然后我将我的模型提取到一个单独的库中,并忘记更改我的一个视图上的模型声明,因此是崩溃。
有没有办法对此进行单元测试?
我不想通过视图的页面标题来做到这一点,因为这可能会动态变化......
这是如何正常处理的,或者这不是通常测试的东西?
看看Selnium WebDriver或WatiN。有很多教程和操作方法可以帮助您入门。
我通常为控制器中的每个方法添加一个非常简单的测试,以检查它是否返回有效的 ActionResult。
[TestMethod]
public void TestMyController()
{
// Arrange.
var controller = new MyController();
// Act.
var result = controller.MyMethod() as ViewResult;
// Assert.
Assert.IsNotNull(result);
}
我还为每个视图模型添加了一些测试,因为当它们在单独的类库中时我遇到了这些问题,但这超出了您的问题范围。
我对每个视图模型进行了一系列测试,包括确保预期属性名称存在的测试。这是一个例子:
/// <summary>
/// Check expected properties exist.
/// </summary>
[Test]
public void Check_Expected_Properties_Exist()
{
// Get properties.
PropertyInfo propInfoFirstName = typeof(ViewModels.MyModel).GetProperty("FirstName");
PropertyInfo propInfoLastName = typeof(ViewModels.MyModel).GetProperty("LastName");
// Assert.
Assert.IsNotNull(propInfoFirstName);
Assert.IsNotNull(propInfoLastName);
}
这只是我运行的众多测试之一,我将写一篇关于这个主题的博客文章,并在准备好时更新这个答案。
我添加了另一个答案,以防之前的答案对其他人有帮助。