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

时间:2013-07-25 15:05:57

标签: unit-testing grails gorm dynamic-finders

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

0 个答案:

没有答案