Java 集成还是单元测试?在不访问外部系统的情况下测试类

Java 集成还是单元测试?在不访问外部系统的情况下测试类,java,unit-testing,testing,integration-testing,Java,Unit Testing,Testing,Integration Testing,集成测试依赖于外部系统,如数据库或网络连接。这些组件应该在单元测试中模拟。 但是,当我们测试三个不同的类时,哪些行为是相互依赖的,这是一个积分测试还是单元测试?这些课程应该被嘲笑吗?让我们假设这些类没有访问外部系统的权限,它们的行为是严格连接的。首先,术语因公司而异 根据《谷歌如何测试软件》一书,如果我没记错的话,他们称测试为“小型测试”、“中型测试”和“大型测试”。 其他公司称之为“白盒测试”、“单元测试”、“集成测试”、“端到端测试”。即使一家公司可能使用相同的名称,但在另一家公司可能意味着

集成测试依赖于外部系统,如数据库或网络连接。这些组件应该在单元测试中模拟。
但是,当我们测试三个不同的类时,哪些行为是相互依赖的,这是一个积分测试还是单元测试?这些课程应该被嘲笑吗?让我们假设这些类没有访问外部系统的权限,它们的行为是严格连接的。

首先,术语因公司而异

根据《谷歌如何测试软件》一书,如果我没记错的话,他们称测试为“小型测试”、“中型测试”和“大型测试”。 其他公司称之为“白盒测试”、“单元测试”、“集成测试”、“端到端测试”。即使一家公司可能使用相同的名称,但在另一家公司可能意味着不同的东西

第二: 模拟与否取决于要测试的内容。如果您想测试这三个类的交互,那么我建议按原样使用这三个类,除非:如果您想隔离一个类的行为,或者想要一个难以实现的行为/不现实的行为/尚未实现的行为,或者难以使用其他类,我建议模仿其他类。

两种测试的目的各不相同。

但是单元测试可以支持集成测试;如果使用,单元测试框架支持