Модуль Grails Unit Test - протестируйте сервис, который использует метод findAllBy*
У нас есть Grails 2.2.1 на проекте. Я хочу проверить сервис. В этом сервисе я использую dynamicFinder (findAllBy...), но результатом этого поиска при использовании в модульном тесте с использованием доменных макетов является EmptyList. Но когда я смотрю в UserRole.list(), есть 3 UserRoles для одного и того же пользователя. Кажется, что Domain.findAllBy... сломан в поддельных доменах.
Класс Domain выглядит следующим образом:
class UserRole implements Serializable {
User user
Role role
static mapping = {
table name: "Sec_User_Sec_Role"
id composite: ['role', 'user']
version false
}
}
И тест выглядит так:
@TestFor(UserService)
@Mock([User, UserRole, Role])
@TestMixin([DomainClassUnitTestMixin])
class UserServiceTests {
// setup to create User, UserRole and Role
// test the service
}
И сервис выглядит так:
class UserService {
....
private List<UserRole> findExistingUserRolePairs (final User user) {
return UserRole.findAllByUser (user)
}