Unit testing 如何在第一个方法调用第二个方法的同一类中对两个方法进行单元测试?

Unit testing 如何在第一个方法调用第二个方法的同一类中对两个方法进行单元测试?,unit-testing,testing,Unit Testing,Testing,假设我有一个类MyClass,它有两个公共方法,methodA()和methodB(),都返回相同类型的对象 methodA()将进行一些计算,然后调用methodB 我应该如何测试这门课?我需要在methodB()上重复我为methodA()所做的所有测试吗 如何处理这个问题 谢谢独立地测试这两种方法,因为这是客户端将看到它们的方式。您应该测试methodA(),就好像您不知道它是如何实现的一样。然后,如果将来将其更改为使用methodC()而不是methodB(),则仍有覆盖范围。这取决于正

假设我有一个类
MyClass
,它有两个公共方法,
methodA()
methodB()
,都返回相同类型的对象

methodA()
将进行一些计算,然后调用
methodB

我应该如何测试这门课?我需要在
methodB()
上重复我为
methodA()所做的所有测试吗

如何处理这个问题


谢谢

独立地测试这两种方法,因为这是客户端将看到它们的方式。

您应该测试
methodA()
,就好像您不知道它是如何实现的一样。然后,如果将来将其更改为使用
methodC()
而不是
methodB()
,则仍有覆盖范围。

这取决于正在测试的代码以及您希望测试的彻底程度。如果methodA()的结果受methodB()的影响,您可以只测试methodA(),但是正如duffymo所说,最好同时测试这两种方法,正如robert所说,最好为methodA()编写测试代码,就好像您不知道它是通过methodB()实现的一样,methodB()也是如此。因为methodA()和methodB()都是公共的,所以应该分别测试它们。但是最好是methodA()的测试确保methodA()完成了它的工作,methodB()的测试确保methodB()完成了它的工作,所以测试不应该完全相同