您如何设计一个服务类,可能会在TDD下面使用数据存储库?例如,如果我们要定义一个接口UserStorageService和UserStorageService#save(用户用户)实现,通过jpa存储库接口将用户保存到某个数据库?我是否应该模拟特定的save或saveAndFlush或类似的JpaReposiotory的方法,如果我甚至不知道我将实际调用哪一个?
答案 0 :(得分:0)
使用Spring的测试支持,而不是模仿save
或saveAndFlush
。然后使用@Transactional
注释您的测试,Spring将使用您的测试用例启动事务,并在测试用例完成时将其作用回来。 (当然,您不得在测试调用的代码中启动新的Transation(例如使用propgation=NEW
)。
@See Spring Reference Chapter 14.5.6 Transaction management (Test)