次のように、ドメインに含まれるメソッドで単体テストを行うのが困難です。
これがドメインクラスです
class UserRole implements Serializable {
User user
Role role
static void removeAll(User user) {
executeUpdate 'DELETE FROM UserRole WHERE user=:user', [user: user]
}
}
次に、サービスで:
class CorporateUserService {
def delete (def cifUserInstance) {
def userDetail,users,userRole
userDetail=UserDetails.findById(cifUserInstance.userDetails.id)
users=User.findById(userDetail.user.id)
userRole=UserRole.removeAll(users)
}
}
そして単体テストでは:
void testDelete(){
def cifUserService = new CorporateUserService()
mockDomain(UserRole,[])
def newuserRole2=UserRole.create(user,role2)
def newuserRole=UserRole.create(user,role)
newuserRole.executeUpdate 'DELETE FROM UserRole WHERE user= :user',[user: user]
try{
cifUserInstance = cifUserService.delete(cifUser)
}
catch(RuntimeException e){
println e
}
}
次のようなエラーがあります。
"groovy.lang.MissingMethodException: メソッドの署名がありません: com.logika.corp.security.UserRole.executeUpdate() は引数の型に適用されます: (java.lang.String, java.util.LinkedHashMap) 値: [DELETE FROM UserRole WHERE user= :user, [user:user1]]"
誰でもこのエラーを修正する方法を知っていますか??