调用不受测试的方法?

时间:2015-07-20 14:44:08

标签: unit-testing

我目前正试图弄清楚如何编写适当的单元测试。还有很多东西需要学习。我想问的一个场景如下:

假设我正在测试类A的方法X。现在我经常发现有必要调用一个不属于当前测试的方法BX)。大多数情况下,这可能是设置测试夹具(即更改X的状态)或断言A的某些内容(即对X的状态进行断言) 。在这两种情况下,嘲弄都是徒劳的。但是,如果我对B进行了任何(错误的)更改,那么即使A没有任何变化,测试A也可能会失败。

现在,我不确定如何解释这个结果。这是否意味着我的测试过程或设计存在缺陷,或者说这是一个非问题,因为我毕竟测试了单元“X”(该类)?

1 个答案:

答案 0 :(得分:5)

如果A的测试失败的原因是因为X问题导致类B的对象处于无效状态,则不一定有任何问题与您的测试设计。实际上,在进行测试B之前,您应该对A进行一些失败的单元测试。这样,您可以假设如果这些测试通过,A的任何测试失败都是A出现问题的结果。

编写单元测试的典型方法是假设每个未测试的方法都能正常工作。但是,这只是有用的,如果其他方法有自己的单元测试来在引入时捕获错误。但是,如果您没有这样做,那么由于您最近在A中引入了错误导致的B测试用例失败可能会让您咆哮错误的树。