Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Grails单元测试-测试使用findAllBy*方法的服务_Unit Testing_Grails_Gorm_Dynamic Finders - Fatal编程技术网

Unit testing Grails单元测试-测试使用findAllBy*方法的服务

Unit testing Grails单元测试-测试使用findAllBy*方法的服务,unit-testing,grails,gorm,dynamic-finders,Unit Testing,Grails,Gorm,Dynamic Finders,我们在一个项目中使用了Grails2.2.1。我想测试一个服务。在这个服务中,我使用了一个dynamicFinder(findAllBy…),但是在使用域mock的单元测试中使用这个finder的结果是一个空列表。但是当我查看UserRole.list()时,同一用户有3个UserRoles。似乎那个领域。芬达尔比。。。在模拟域中被破坏 域类如下所示: class UserRole implements Serializable { User user Role role stat

我们在一个项目中使用了Grails2.2.1。我想测试一个服务。在这个服务中,我使用了一个dynamicFinder(findAllBy…),但是在使用域mock的单元测试中使用这个finder的结果是一个空列表。但是当我查看UserRole.list()时,同一用户有3个UserRoles。似乎那个领域。芬达尔比。。。在模拟域中被破坏

域类如下所示:

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)
   }
该服务看起来像:

@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)
   }
类用户服务{
....
私有列表findExistingUserRolePairs(最终用户){
返回UserRole.findallbyser(用户)
}

这是单元测试还是集成测试?我不记得单元测试中是否完全支持动态查找程序。您可以尝试将其更改为条件。如果它仍然返回空,请尝试使用此插件:您还可以显示完整的测试用例吗?OP中包含的DomainClassUnitTestMixin应该允许动态查找程序。如果您执行以下操作,它会工作吗
mockDomain(UserRole);mockDomain(User)
而不是
@Mock
?如何创建和保存
UserRole
实例?