gpt4 book ai didi

unit-testing - 单元测试检查空值

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

这是一个非常基本的问题,但我仍然找不到合适的答案。在我的测试中,有可能出现空值,因此最后一个阶段(Act)开始看起来有点奇怪(它不再只是 Act)。我的意思是:

Assert.IsNotNull(variable);

var newVariable = variable.Property;
Assert.IsNotNull(newVariable);

var finalVariable = newVariable.AnotherProperty;
Assert.AreEqual(3, finalVariable.Count);

现在它们显然是相关的,我必须确保这些值不为空,而且一个测试中有三个断言,并且 act 部分开始看起来不正确。

那么遇到这种情况一般的解决办法是什么呢?有没有比 3 个测试(每个测试一个断言并在最后 2 个断言之前检查 null 更聪明的方法)?

最佳答案

基本上有两种方法可以解决您的问题:

  1. Guard assertions :额外的断言确保在进行正确的测试之前数据处于已知状态(这就是您现在正在做的事情)。
  2. 保护断言移至自己的测试中。

选择哪个选项很大程度上取决于测试中的代码。如果先决条件在其他测试中重复,则暗示需要采用单独的测试方法。如果前提条件在生产代码中有所反射(reflect),则再次提示需要单独的测试方法。

另一方面,如果您只是为了增强信心而做的事情,那么单独的测试可能太多了(但正如其他答案中所述,这可能表明您无法完全控制您的测试或您一次测试了太多东西)。

关于unit-testing - 单元测试检查空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12441565/

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