是使用同一类的多个方法的测试还是单元测试



如果我使用被测类的多个方法创建一个单元测试,它仍然是单元测试吗?例如,

@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()的是同一类的不同对象呢?

单元的定义在很大程度上取决于您的用例——在某些情况下,它只是一个方法,在其他情况下,是几个方法或整个类。

在过程编程中,一个单元可以是一个完整的模块,但更常见的是一个单独的函数或过程。在面向对象编程中,单元通常是一个完整的接口,例如一个类,但也可以是一个单独的方法。

看看这个链接,可以找到一篇关于面向对象编程中单元测试的有趣论文("面向对象程序的差分单元测试框架")!

最新更新