Java spring引导-使用两台服务器运行junit测试
我用JavaSpringBoot创建了一个服务器(“节点”)。有几个节点实例,因为每个节点的配置文件不同。例如: node1.properties: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 ....
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台服务器,这使其本身更像是一个集成测试,而不是一个单元测试