我正在尝试模拟UserService类中的方法(passwordComplexityCheck)。
以下是我在测试类中进行模拟的内容
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 :(得分:1)
为了使Grails中的内置日志记录在测试期间正常工作,您将不得不模拟日志记录功能。为此,您希望在测试类中包含以下代码。在调用任何代码之前,最好的位置是setUp()方法。
mockLogging(UserService, true)