【发布时间】:2014-12-11 22:29:39
【问题描述】:
我试图模拟 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 的方式模拟它。既然方法有参数,mocking会不一样吗?在服务中模拟方法的一般方式是什么?
【问题讨论】:
-
这在什么方面不起作用?你有错误吗?或者只是没有得到你期望的行为?了解您所看到的异常或行为将有助于追查问题。
-
嗨,很抱歉造成混乱。由于登录 UserService 类而发生错误。您能否建议如何模拟登录服务类?
-
log.debug("Enter(Method) - passwordComplexityCheck()")
-
groovy.lang.MissingPropertyException:没有这样的属性:类日志:com.merckserono.ecko.data.UserService at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)在 org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.getProperty(GetEffectivePogoPropertySite.java:86) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:239) com.merckserono.ecko.data。 UserService.passwordComplexityCheck(UserService.groovy:290)com.merckserono.ecko.data.UserService$passwordComplexityCheck.call(Unknown Source
标签: unit-testing grails