gpt4 book ai didi

unit-testing - TDD 功能测试

转载 作者:行者123 更新时间:2023-11-28 20:17:40 29 4
gpt4 key购买 nike

我应该为所有嵌套方法编写单元测试,还是为调用者编写一个测试就足够了?

例如:

void Main()
{
var x = new A().AFoo();
}

public class A
{
public int AFoo()
{
// some logic
var x = new B().BFoo();

// might have some logic

return x;
}
}

public class B
{
public int BFoo()
{
// some logic
return ???;
}
}

是否足以为 Main() 方法编写单元测试,或者我需要为 Main、A.AFoo()、B.BFoo() 方法编写测试?我应该去多深?

提前致谢。

最佳答案

测试纯粹主义者会说您需要为类 AB 创建单元测试。

每个类都应该测试所有方法。如果一个方法可以做不止一件事(例如,如果你有一个 if 语句),那么你应该对每条路径进行测试。如果测试变得过于复杂,重构代码以使测试更简单可能是个好主意。

请注意,就目前而言,很难单独测试 A,因为它依赖于 B。如果 B 很简单,就像现在这样,它可能没问题。您可能希望将测试命名为 A 集成测试,因为从技术上讲,它们同时测试 AB。另一种选择是让方法 AFoo 接受它在其上运行的 B 的实例作为参数。这样您就可以模拟 B 的实例并进行真正的单元测试。

关于unit-testing - TDD 功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759067/

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