gpt4 book ai didi

c# - 单元测试功能

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:33 25 4
gpt4 key购买 nike

我在编写单元测试时遇到了一个非常有趣的问题。

我可以在测试代码中使用函数的同时测试函数吗?

例如,

如果我有一个 List<int>具有称为 Add() 的函数的类.

我想测试一个目标列表对象,其中已有两个 int:1 和 2。现在我添加第三个数字:3,并想断言该数字已成功添加。所以我写道:

public void TestMethod()
{
//initialize
List<int> list = new List<int>();
list.Add(1);
list.Add(2);

//do operation
list.Add(3);
Assert.IsTrue(list.Contains(3));
}

但是,上面的测试用例,试图测试目标函数:Add(),已经使用了Add()来初始化。我认为这种相关性在某些情况下可能会导致一些问题,一般来说......

是否有任何测试理论表明我们不能这样做?

谢谢!

最佳答案

功能可能需要多个测试。在这种情况下,您将拥有一个仅测试单个 Add() 的函数,然后是上面的函数。只要两者都通过,您就可以(合理地)确信您的结果是可靠的。但是,如果第一次测试失败,则可能应该忽略第二次测试的结果。

不过,理想情况下,您可以访问所测试内容的内部状态,因此可以提供一种不同的方式来设置初始条件,而无需调用被测函数。

关于c# - 单元测试功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6702616/

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