2014-12-11 1 views
0

Я пытался издеваться над методом (passwordComplexityCheck), который находится внутри класса UserService.Издевательствование простого метода внутри класса обслуживания в Grails

Ниже то, что я сделал для насмешливый в моем тестовом классе

def userService 
controller.userService=new UserService() 

controller.userService=[passwordComplexityCheck:{def k-> 
    return true 
}] 

Но это не работает.

Ниже приведен класс UserService и метод.

class UserService { 
    //required declaration 
    ........ 
    public boolean passwordComplexityCheck(String password) { 

     log.debug("Enter(Method) - passwordComplexityCheck()") 

     if (password != null && password.trim() != "") { 
     if (password.length() < grailsApplication.config.user.password.min.length) { 
      return false 
     } 
     if (password == password.toLowerCase()) { 
      return false 
     } 
     if (password == password.toUpperCase()) { 
      return false 
     } 
     if (password.grep(~/\d+/).size == 0) { 
      return false 
     } 
     } else { 
     return false 
     } 
     return true 
    } 
} 

Мне просто нужно издеваться над этим так, чтобы он мог вернуть либо true, либо false. Так как метод имеет аргумент, насмехаются будут разные? Каков общий способ издевательских методов в сервисах?

+0

Каким образом это не работает? вы получаете сообщение об ошибке? или просто не получая поведение, которое вы ожидаете? Знание того, какое исключение или поведение вы видите, поможет выявить проблему. – David

+0

Привет, Извините за путаницу. Ошибка произошла из-за входа в класс UserService. Не могли бы вы посоветовать, как издеваться над журналом в классе обслуживания? –

+0

log.debug ("Enter (Method) - passwordComplexityCheck()") –

ответ

1

Чтобы встроенная регистрация в Grails работала во время тестирования, вам придется издеваться над функциями ведения журнала. Для этого вы хотите включить код ниже в свой тестовый класс. Лучшее место в методе setUp() перед вызовом любого из вашего кода.

mockLogging(UserService, true)

См: http://grails.org/doc/latest/api/grails/test/GrailsUnitTestCase.html#mockLogging%28java.lang.Class,%20boolean%29

+1

Спасибо большое! работал –

+0

Рад это слышать – David

+0

в моем файле конфигурации, у меня есть значение «user.password.min.length = 6», и я попытался издеваться над этим как «mockConfig (user.password.min.length). Но это указывает на исключение исключающего указателя. Это значение было принято как grailsApplication.config.user.password.min.length в коде. Есть идеи? –