如果我使用被测类的多个方法创建一个单元测试,它仍然是单元测试吗?例如,
@TestFixture
public class TestBehavior {
@Test
public void testA() {
// arrange
Model sut = new Model();
// act
string actual = sut.doA(5, sut.doB());
// assert
assertEqual(expected, actual);
}
}
它可以被视为单元测试吗?或者一些拙劣的集成测试,因为它调用doB()?如果调用doB()的是同一类的不同对象呢?
单元的定义在很大程度上取决于您的用例——在某些情况下,它只是一个方法,在其他情况下,是几个方法或整个类。
在过程编程中,一个单元可以是一个完整的模块,但更常见的是一个单独的函数或过程。在面向对象编程中,单元通常是一个完整的接口,例如一个类,但也可以是一个单独的方法。
看看这个链接,可以找到一篇关于面向对象编程中单元测试的有趣论文("面向对象程序的差分单元测试框架")!