gpt4 book ai didi

unit-testing - 如何命名和组织测试具有多个参数的方法的单元测试?

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

鉴于必须测试的这种方法:

// Search the given value using the provided search options
// Return true if the searchValue was found; false otherwise
bool Search(string searchValue, bool useExactSearch, bool useIndexing)

我有 6 个重要的 searchValues(一个带有标点符号,一个带有重音字符,一个带有换行符等),我需要使用 useExactSearch 和 useIndexing 的每种可能组合进行验证。这意味着 54 个测试用例。

你怎么看?你真的会写 54 个单元测试吗?如果是这样,你如何命名它们?你是否只为最重要的情况编写测试?您是否编写了一个循环遍历参数值和预期结果表的单元测试?如果我做一个单一的单元测试,当持续集成报告失败时,很难找到哪个案例被破坏了。

最佳答案

如果您使用的是 NUnit (.Net),您可以这样做:

[TestCase("John*",true, false, false)]
[TestCase("*user*",false, true, true)]
[TestCase(".",true, false, true)]
public void SearchTest(string param1, bool param2, bool param3, bool expectedResult)
{
YourClass clazz = new YourClass();
bool result = clazz.Search(param1, param2, param3);
Assert.AreEqual(expectedResult, result);
}

NUnit Test Runner 将执行 3 次。而且,正如你所看到的 here ,报告显示所有测试用例分开,这有助于您确定谁破坏了构建。
这可能适用于大多数 xUnit 框架。

关于unit-testing - 如何命名和组织测试具有多个参数的方法的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259942/

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