我们在项目上有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)
}