【发布时间】:2010-12-25 06:57:47
【问题描述】:
asp.net mvc 的好处之一是测试。多个模板也可用于视图。我想知道,为什么不创建一些用于测试的视图引擎。它将允许以声明方式编写测试(例如 vriting 您的标记,但添加假设和约束)。你怎么看,这有什么意义吗?
进行了一些调查,发现目前人们正在使用假视图引擎来测试他们的控制器。 Here 和 here 是这种方法的两个示例。 因此,在这种情况下,我会说将视图用于测试目的的想法可以说是“创建一个可以简化一些默认测试过程的视图引擎”。
通过简化一些测试程序,我假设如下:
允许对某些类型/对象进行默认检查,例如检查 null、相等或不相等。
允许轻松访问所有可用于生成和填充视图的事物。它的模型、视图数据等等。这样您就可以编写诸如检查模型包含客户并且他的名字是 John Smith 或 Products DropDownList 有 5 个产品之类的内容,并允许使用一些简单的语法来编写它。像 Model.Contains(Customer).CustomerName.Is("JohnSmith")、Model.Products.Contains(5)。这是我刚想到的一个,我认为有更好的方法来写测试用例,这是肯定的,但我希望它能给出想法。
允许使用您已经必须使用它们生成一些测试的视图。如果有一种 WebForms 设计器允许您使用部分视图生成部分测试,那就太好了。我认为这可以提高测试编写的速度,因为您在查看视图时有足够的上下文了解正在发生的事情以及需要测试的内容。
【问题讨论】:
-
我不确定你想用这个去哪里。可以使用 Selenium 测试视图标记,并且可以断言来自控制器的操作结果。通过额外的视图我可以获得什么?
-
It
s not going to be a View as we have views now. Its 将成为测试视图。由于单元测试类也是类,但用于测试目的。但是你是否认为我们已经有了类并且我们可以测试我们的应用程序,为什么我们需要单元测试?主要思想是使编写测试逻辑更容易。就像您将 aspnet 控件放在设计器中一样,但用于测试。现在你可以以声明方式放置很多东西,为什么不允许以相同的方式进行测试?
标签: asp.net-mvc unit-testing tdd