gpt4 book ai didi

unit-testing - 如何对重载函数进行单元测试?

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

所以我有一个看起来像下面这样的类:

public class MyClass
{

DatabaseDependency _depend;

public MyClass(DatabaseDependency depend)
{
_depend = depend;
}

public string DoSomething(DBParameter database)
{
var result = _depend.GetResults(database, ...);
string response = String.Empty;

// some logic to process the result

return response;
}

}

其中 DBParameter 是一个简单的值类,其中包含 Server、DBName、DBType 等属性。

现在,我想向 DoSomething 添加一个重载,以便它接受一个连接字符串而不是 DBParameter 参数(假设 DatabaseDependency 已经有一个 GetResults 重载,它接受一个连接字符串)。

我的问题:我有几个单元测试,它们描述了用于处理来自 DatabaseDependency.GetResults 的结果的各种逻辑路径。当我将重载添加到 DoSomething 时,我基本上会重构代码,以便两个重载都重用此逻辑(即可能将其移至私有(private)方法)。进行单元测试的正确方法是什么?我是否需要进行同样多的单元测试来验证我添加的新重载的所有逻辑路径?

最佳答案

如果您的代码保持其当前外观,那么是的:您还需要对该方法进行单元测试,基本上是重复您的测试工作。

但是,如果实现该功能以便一个方法简单地调用另一个方法是有意义的,那么您可以使另一个方法成为虚拟方法。这将允许您创建一个特定于测试的子类,您只需在其中验证虚拟方法是否由具有正确值的其他方法调用。

一旦通过一个或多个单元测试验证了这一点,您就不需要进一步测试该方法,因为现在您已经证明该方法正确地调用了另一个方法,并且您可以将测试工作集中在该方法上。

关于unit-testing - 如何对重载函数进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425858/

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