gpt4 book ai didi

c# - 单元测试 : Reasons a ViewResult would be null, 为什么值得测试?

转载 作者:行者123 更新时间:2023-11-30 14:10:38 25 4
gpt4 key购买 nike

其他提到 null ViewResults 的问题实际上似乎指的是 null Models(我肯定计划测试的东西)。我是测试新手。今天刚开始我的第一个使用 TDD 的项目。我找到的一些资源,甚至是新 MVC 项目的库存测试代码,都显示测试 ViewResult 是否为 null:

// Stock code
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController();

// Act
ViewResult result = controller.Index() as ViewResult;

// Assert
Assert.IsNotNull(result);
}

我想知道为什么这是必要的。鉴于我有限的经验,我只能想到 ViewResult 为空的两个原因:

原因 1:您返回了错误的类型,例如 JsonResult 或其他类型 - 如果该方法返回一般 ActionResult,则可能会发生这种情况。我可以认为这是一个合法的理由,但我不确定这是我的方法需要专门返回 ViewResult 的要求。事实上,也许我希望它在以后很容易改变。

原因 2:您显式返回 null。但在现实世界中,你为什么要这样做?

有人可以提供其他示例说明 ViewResult 何时为空,并解释为什么(或为什么不)测试它很重要吗?正如我所说,我的经验有限,所以可能会有一些我没有看到的东西 - 这就是我问的原因。



编辑
如果我的问题格式不正确,我深表歉意。让我澄清一下:我知道如果它为 null 是不好的,并且理解测试 null 的值(value)if nulls are possible/likely。我更关心 A. how/why 首先它会是 null,以及 B. 这些原因是否是可以增加测试值(value)的合法原因,或者它们是否不太可能是边缘情况在现实世界中永远不会发生。

我的原因 1 和原因 2 是否涵盖了所有场景?如果没有,还有哪些?如果它们是边缘情况,极不可能发生,您是否仍对它们进行测试?

最佳答案

Can someone give other examples of when the ViewResult would be null

它应该永远null,这就是这个测试用例验证的内容。如果开发人员通过某种方式返回 null 在 Controller 代码中引入错误,则此测试用例将失败,并在错误代码投入生产之前挽救许多生命。

关于c# - 单元测试 : Reasons a ViewResult would be null, 为什么值得测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948466/

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