有没有一种正确的方法来使用aspx视图引擎对单元测试视图进行单元化?
我一直在玩各种方式,让我得到一个可解析的字符串,如:
view.RenderView(viewContext);
但到目前为止我没有运气。
我读过的大部分内容都会进入集成测试领域。集成测试重叠一点,但不允许我使用虚拟数据来检查输出,这是我试图通过单元测试视图实现的主要内容。
答案 0 :(得分:1)
你签出了Selenium吗?它针对Web UI测试,并在Hunt和Thomas' Pragmatic Unit Testing in C# with NUnit 中进行了讨论。它使用的是NUnit,虽然它实际上是一种系统测试,而不是单元测试(仅仅因为你必须启动Web应用程序并导航到你的页面进行测试)。对不起,我在之前的回答中没有沿着这条路走下去,但昨天早上我有点匆忙!
还有NUnitAsp,但该项目基本上已被放弃。它起作用并在当时受到广泛赞誉,但我不愿意推荐任何不再积极开发的东西。
答案 1 :(得分:0)
我所做的是创建对象以“驱动”用户界面并将它们全部放入“BusinessObjects”dll中。在创建界面时,界面基本上从这些对象中提取结果。然后,我使用标准NUnit单元测试对Business Objects进行单元测试。我担心你的问题可能对MVC框架有点具体,但我希望这给你一些思考的东西。
答案 2 :(得分:-1)
我的建议是不要打扰。坚持测试模型和控制器。检查特定的HTML只会导致一个脆弱的测试基础,这将打破你对布局做出最轻微改变的那一刻。