Java spring引导-使用两台服务器运行junit测试

Java spring引导-使用两台服务器运行junit测试,java,spring,spring-boot,junit,Java,Spring,Spring Boot,Junit,我用JavaSpringBoot创建了一个服务器(“节点”)。有几个节点实例,因为每个节点的配置文件不同。例如: node1.properties: application.name=FullNode receiving.server.addresses=tcp://localhost:8001 propagation.server.addresses=tcp://localhost:8002 recovery.server.address=http://localhost:8060 ....

我用JavaSpringBoot创建了一个服务器(“节点”)。有几个节点实例,因为每个节点的配置文件不同。例如:

node1.properties:

application.name=FullNode
receiving.server.addresses=tcp://localhost:8001
propagation.server.addresses=tcp://localhost:8002
recovery.server.address=http://localhost:8060
....
application.name=FullNode
receiving.server.addresses=tcp://localhost:6001
propagation.server.addresses=tcp://localhost:6002
recovery.server.address=http://localhost:8050

...
节点2.2属性:

application.name=FullNode
receiving.server.addresses=tcp://localhost:8001
propagation.server.addresses=tcp://localhost:8002
recovery.server.address=http://localhost:8060
....
application.name=FullNode
receiving.server.addresses=tcp://localhost:6001
propagation.server.addresses=tcp://localhost:6002
recovery.server.address=http://localhost:8050

...
为了测试向服务器发送数据的过程,我为TransactionController编写了一个JUnit测试

TransactionController:

@RestController
@RequestMapping("/transaction")
public class TransactionController {

    @Autowired
    private TransactionService transactionService;
    ...

    @RequestMapping(method = PUT)
    public ResponseEntity<Response> addTransaction(@Valid @RequestBody 
             AddTransactionRequest addTransactionRequest) {
        return transactionService.addNewTransaction(addTransactionRequest);
    }
...
}
问题是,每个节点也将其事务发送到其他节点。但是我如何用JUnit测试它呢?我不能仅仅在测试中创建TransactionController的两个实例,因为TransactionController是一个Springbean单例,运行节点的唯一方法是使用他的配置文件


我该怎么做呢?

我会看看Mockito框架。模拟
TransactionService
。而不是启动2台服务器,这使其本身更像是一个集成测试,而不是一个单元测试