Unit testing 单元测试模块化ASP.NETWebForms页面

Unit testing 单元测试模块化ASP.NETWebForms页面,unit-testing,webforms,Unit Testing,Webforms,我目前正在开发一个使用ASP.NETWeb表单的遗留应用程序。此应用程序中的页面在aspx和ascx文件中混合了格式和逻辑。通常是这样的: if (number of passengers > 1) include singlePassengerForm.ascx else include multiPassengerForm.ascx 但是想想更复杂的事情——嵌套的ascx包含更多的逻辑,更大的页面等等 我想解决这个问题,但要慢慢来。我目前正在进行的最终设计是一个非常轻的页面

我目前正在开发一个使用ASP.NETWeb表单的遗留应用程序。此应用程序中的页面在aspx和ascx文件中混合了格式和逻辑。通常是这样的:

if (number of passengers > 1)
  include singlePassengerForm.ascx
else 
  include multiPassengerForm.ascx
但是想想更复杂的事情——嵌套的ascx包含更多的逻辑,更大的页面等等

我想解决这个问题,但要慢慢来。我目前正在进行的最终设计是一个非常轻的页面/控件,它没有任何逻辑,只是从模型中选择一些东西(包括要嵌入的ascx)。我喜欢页面和控件被分解成更小的部分,我想保留这一点。因此,这将转化为一个互连模型(例如:ReservationFormModel有一个PassengerFormModel-可以是一个单一的PassengerForm或多个PassengerForm)和一组互连页面,其中可能有一组控制器来填充模型并连接模型和页面。有点像MVCish。基本思想是,我想对逻辑进行单元测试

我想做的另一件事是把它作为一个持续的过程来解决——而不是在一次大爆炸中。所以我希望能够从小处着手,只修复页面的一部分,而页面的其余部分仍然使用旧的方式在aspx/ascx中嵌入逻辑和数据

如果您对此有任何想法/建议/经验报告,我们将不胜感激

我已经看到了答案:这是:
但我正在寻找更具体的东西,正如您所知,WebForm path不是编写代码的最可测试的方式。MVC模式的一个关键方面是,可以更好地测试控制器


一个简单的解决方案是在“逻辑”类(如MVC控制器)中包含核心逻辑,并仅使用页面隐藏代码将数据绑定到控件。然后,您可以使用NUnit框架来创建测试夹具,并使用NCover来监视测试代码覆盖

正如您所知,Web表单路径并不是编写代码的最可测试的方式。MVC模式的一个关键方面是,可以更好地测试控制器


一个简单的解决方案是在“逻辑”类(如MVC控制器)中包含核心逻辑,并仅使用页面隐藏代码将数据绑定到控件。然后,您可以使用NUnit框架来创建测试夹具,并使用NCover来监视测试代码覆盖

我觉得这并不能真正回答我的问题。澄清一下:我手上已经有一个代码库,它在代码背后使用逻辑。我希望能够采用经过测试的控制器/模型方法,但我没有时间以大爆炸的方式进行。在单个页面/控件中,我希望能够将逻辑的一部分(我需要更改)移动到控制器,为其编写测试,然后进行更改。你对此有什么建议吗?我觉得这并不能真正回答我的问题。澄清一下:我手上已经有一个代码库,它在代码背后使用逻辑。我希望能够采用经过测试的控制器/模型方法,但我没有时间以大爆炸的方式进行。在单个页面/控件中,我希望能够将逻辑的一部分(我需要更改)移动到控制器,为其编写测试,然后进行更改。你对此有什么建议吗?