gpt4 book ai didi

asp.net-mvc - 在单元测试 Controller 操作时提供显式 View 名称?

转载 作者:行者123 更新时间:2023-12-04 07:07:36 24 4
gpt4 key购买 nike

斯蒂芬·瓦尔特 recommends当您想要对它们进行单元测试时,您应该提供明确的 View 名称。

我肯定想测试它们,但我很好奇这个建议在 1.0.0 发布时是否仍然有效。

NerdDinner tutorial测试只是检查 viewResult 是否为空。它们没有明确指定 viewName,因此它是空的。
我想删除在实际代码中作为字符串提供的 View 名称,但这些检查对我来说似乎不太有用......
(我什至想不出 viewResult 确实返回 null 的场景?!)

最佳答案

这里真的有两个不同的问题。第一个问题是自从 Stephen Walther 编写了会改变建议的建议以来,MVC 框架中是否发生了任何变化。这个问题的答案是“不”。

第二个问题是该建议是否是一种好的做法。在这里,我将不同意斯蒂芬·沃尔特的观点。他的例子有点奇怪。他对“索引”操作的单元测试试图断言该操作返回一个明确的 View 名称,但显然它没有。如果我写了这个单元测试,我会断言 View 名称等于空字符串。然后单元测试将通过。单元测试将有效地断言该操作指定该 View 与该操作具有相同的名称,而不是断言该操作指定了某个名称的 View 。这是一个合法的测试。

MVC 框架背后的指导原则之一是约定优于配置。换句话说,您不应该被要求指定任何通常的默认值。 View 名称的默认值与操作名称相同。除非指定了单独的 View 名称,否则 WebFormsViewEngine 的记录行为是查找与操作同名的 View 。因此,不指定 View 名称与指定“使用默认 View 名称”相同。

因此,我认为指定与默认 View 名称相同的 View 名称不是一个好主意,并且我认为使用单元测试不是违反此约定的好理由。

关于asp.net-mvc - 在单元测试 Controller 操作时提供显式 View 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com