gpt4 book ai didi

unit-testing - 在Grails中的Service类中模拟一个简单的方法

转载 作者:行者123 更新时间:2023-12-02 15:26:03 33 4
gpt4 key购买 nike

我试图模拟UserService类中的方法(passwordComplexityCheck)。

以下是我在测试类(class)中为模拟所做的工作

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的方式即可。由于该方法具有参数,因此模拟会有所不同吗?服务中模拟方法的一般方法是什么?

最佳答案

为了使Grails中的内置日志记录在测试期间正常工作,您将不得不模拟日志记录功能。为此,您想在测试类中包含以下代码。最好的地方是在调用任何代码之前将其放置在setUp()方法中。
mockLogging(UserService, true)
另请:http://grails.org/doc/latest/api/grails/test/GrailsUnitTestCase.html#mockLogging%28java.lang.Class,%20boolean%29

关于unit-testing - 在Grails中的Service类中模拟一个简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27415554/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com