我应该为所有嵌套方法编写单元测试,还是为调用者编写一个测试就足够了?
Ví dụ:
void Main()
{
var x = new A().AFoo();
}
public class A
{
public int AFoo()
{
// some logic
var x = new B().BFoo();
// might have some logic
trả lại x;
}
}
public class B
{
public int BFoo()
{
// some logic
return ???;
}
}
是否足以为 Main() 方法编写单元测试,或者我需要为 Main、A.AFoo()、B.BFoo() 方法编写测试?我应该去多深?
Cảm ơn trước.
测试纯粹主义者会说您需要为类 MỘT
Và B
创建单元测试。
每个类都应该测试所有方法。如果一个方法可以做不止一件事(例如,如果你有一个 if 语句),那么你应该对每条路径进行测试。如果测试变得过于复杂,重构代码以使测试更简单可能是个好主意。
请注意,就目前而言,很难单独测试 MỘT
,因为它依赖于 B
。如果 B
很简单,就像现在这样,它可能没问题。您可能希望将测试命名为 MỘT
集成测试,因为从技术上讲,它们同时测试 MỘT
Và B
。另一种选择是让方法 AFoo
接受它在其上运行的 B
的实例作为参数。这样您就可以模拟 B
的实例并进行真正的单元测试。
Tôi là một lập trình viên xuất sắc, rất giỏi!