Я хочу написать интеграционный тест для своего пользовательского класса Grails.
У меня есть метод afterUpdate()
, который вызывает метод afterUpdate в userService, который вызывает другую службу.
Теперь я хочу убедиться, что вызов другой службы выполнен правильно. Если я отлаживаю код, метод вызывается правильно. но мой тест всегда терпит неудачу и говорит, что метод не вызывается:
def "After Update for User"() {
given:
RedisService.metaClass.'static'.del = {String key -> true}
User user = new User()
user.save(flush: true)
when:
user.afterUpdate()
then:
1 * redisService.del(!null)
}
Я пробовал разные вещи, такие как
then:
1 * user.userService.afterUpdate(!null)
1 * userService.redisService.del(!null)
1 * redisService.del(!null)
но все они терпят неудачу.
Я всегда получаю:
| Failure: After Update for User(com.boxcryptor.server.RedisCacheIntegrationSpec)
| Too few invocations for:
1 * user.userService.afterUpdate(!null) (0 invocations)
Unmatched invocations (ordered by similarity):
None
Too few invocations for:
1 * redisService.del(!null) (0 invocations)
Unmatched invocations (ordered by similarity):
None
Обновление:
метод after Update действительно прост:
def afterUpdate(User user) {
deleteETagCache(user)
}
def deleteETagCache(User user) {
redisService.del(user.id.toString())
}
afterUpdate
? - person lucke84   schedule 10.01.2014