Testing 检查两个类的交互是什么样的测试

Testing 检查两个类的交互是什么样的测试,testing,integration,Testing,Integration,有一个类a在做一些计算,还有一个类B在从类a调用方法。 单元测试对这两个类都很好,但当将两个类一起使用时,我发现它不起作用。问题是参数的类型不正确。因为这是学校作业的一部分,我应该说这是什么样的考试。我认为这是一种整合,对吗 我这样认为是因为集成意味着将更多的模块集成到一个系统中。这里我将两个类集成在一起。典型的“集成测试”是指涉及其他系统的测试,如数据库、文件系统、web服务或其他任何系统。因为在你的例子中,它是同一个程序中的两个类,所以我将它归类为单元测试 人们期望单元测试的范围很小,但没有

有一个类a在做一些计算,还有一个类B在从类a调用方法。 单元测试对这两个类都很好,但当将两个类一起使用时,我发现它不起作用。问题是参数的类型不正确。因为这是学校作业的一部分,我应该说这是什么样的考试。我认为这是一种整合,对吗

我这样认为是因为集成意味着将更多的模块集成到一个系统中。这里我将两个类集成在一起。

典型的“集成测试”是指涉及其他系统的测试,如数据库、文件系统、web服务或其他任何系统。因为在你的例子中,它是同一个程序中的两个类,所以我将它归类为单元测试

人们期望单元测试的范围很小,但没有任何硬性规定将其限制在一个方法或一个类中


单元测试检查程序中的代码是否内部一致,这就是这里需要做的。

严格地说,单元测试是一个单独测试的模块(类),并去掉任何外部依赖项

但在现实中,所谓的单元测试往往会打破这一规则。例如,在Rails中,单元测试经常命中数据库(但这是可以避免的)

在您描述的情况下,“集成”可能是最好的术语


请注意,根据上下文,这些术语的含义可能会有很大差异。我将Nathan Hughes所描述的称为系统集成测试,以区别于更细粒度的测试。

我也在考虑这一点,但集成测试的定义是“至少两个模块”,似乎就是这种情况。它不是单元,因为它们是独立的。我的意思是,一个类调用另一个类,这不是单元测试应该做的。@KhDonen:这取决于模块是什么。如果您有两个独立的部分(比如一个部分是可重用的库),那么您可以将其作为集成测试。如果你从不单独使用这些部分(它们会合并到同一个部署工件中),那么这就是一个单元测试。从来没有听说过使用两个类进行集成测试。还有一件事——你说“因为它是同一个程序中的两个类”。这意味着即使一个程序中有100个类,你也会称之为单元测试?没有意义,单元测试应该是一小部分功能,不是吗?@KhDonen:单元测试可以是任何大小的有用的,它们都是用来帮助开发人员的。所以你可以有一些范围非常有限的,还有一些范围更广。