我尝试为我的 API 控制器编写 UnitTest,它使用来自 micronaut-data-jpa 的 CrudRepository。我使用@MockBean 在我的控制器中模拟协作存储库。如果我运行测试,我会收到以下错误:
Message: No such method [findById(java.lang.Object) ] for bean [jens.repositories.ConnectionProfileRepository]
我从未使用过 Spock、Micronaut-Data 或 Micronaut-Test,仅从以下来源尝试过:
https://micronaut-projects.github.io/micronaut-test/latest/guide/index.html
控制器:
ConnectionProfileRepository profileRepository
ProfilesController(ConnectionProfileRepository profileRepository) {
this.profileRepository = profileRepository
}
语言:Groovy 存储库
interface ConnectionProfileRepository extends CrudRepository<ConnectionProfile, UUID> { }
测试
@MicronautTest
class ProfilesControllerSpec extends Specification {
@Inject
ConnectionProfileRepository profilesRepositoryMock
@MockBean(ConnectionProfileRepository.class)
ConnectionProfileRepository profileRepository() {
Mock(ConnectionProfileRepository)
}
...
如何使用当前设置进行管理以实现控制器中存储库的模拟?