Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 在测试基于MVC的UI时,有多少测试设置是通用的?_Unit Testing_Model View Controller_User Interface_Tdd_Mvp - Fatal编程技术网

Unit testing 在测试基于MVC的UI时,有多少测试设置是通用的?

Unit testing 在测试基于MVC的UI时,有多少测试设置是通用的?,unit-testing,model-view-controller,user-interface,tdd,mvp,Unit Testing,Model View Controller,User Interface,Tdd,Mvp,我正在尝试测试一个简单的基于WebForms(asp.net)的UI,并遵循MVP模式使我的UI更易于测试 当我遵循后端算法的TDD方法时,我发现有一些单元测试重构是本着DRY原则进行的(不要重复你自己)。当我尝试使用Rhino Mock将其应用于UI以验证我的交互时,我看到在设置视图或模型期望时控制器测试中有许多共性 我的问题是:如果有重构的话,您通常会进行到什么程度?我很好奇其他TDER如何测试他们基于MVC/MVP的UI。我使用MVP,在我的测试中,我尝试在标准代码中应用大部分重构。由于测

我正在尝试测试一个简单的基于WebForms(asp.net)的UI,并遵循MVP模式使我的UI更易于测试

当我遵循后端算法的TDD方法时,我发现有一些单元测试重构是本着DRY原则进行的(不要重复你自己)。当我尝试使用Rhino Mock将其应用于UI以验证我的交互时,我看到在设置视图或模型期望时控制器测试中有许多共性


我的问题是:如果有重构的话,您通常会进行到什么程度?我很好奇其他TDER如何测试他们基于MVC/MVP的UI。

我使用MVP,在我的测试中,我尝试在标准代码中应用大部分重构。由于测试不同场景所需的细微变化,它在测试中通常不太有效,但在部分中可能存在共性,如果可能,我会进行整合。随着项目的发展,这确实缓解了需要的变更;就像在标准代码中一样,更改一个位置比更改20个位置更容易。

我不会像标准代码那样重构测试。当您将事物重构为公共基类、辅助方法等时,测试开始变得更加模糊。测试本身应该足够清晰

干燥不是一个测试问题


这就是说,有许多管道方面的事情是经常做的,这些应该被抽象掉

我更愿意将单元测试视为纯功能程序,以避免必须测试它们。如果一个操作在两个测试之间足够常见,那么我会针对标准代码库对其进行评估,但即使这样,我也会避免重构测试,因为我倾向于有很多重构测试,特别是对于gui驱动的BL。我使用selenium进行功能测试 我正在使用JUnit测试我的控制器

我将模拟控制器使用的服务或资源,并测试控制器重定向到的URI,等等

在这一点上,我唯一没有真正测试的是视图。但我使用了功能测试来补偿