【发布时间】:2014-09-09 22:57:23
【问题描述】:
我有一个方法想在我的站点中测试
public boolean syncUser(username, password){
if (getUserFromDB(username)){
// do work
return true
}
return false
}
如何测试syncUser 和存根/模拟getUserFromDB?
我什么都试过了,包括
_ * _.getUserFromDB(*_) >> true
但它一直试图点击方法而不是使用返回值。测试用例如下:
void "successfulSyncUser"(){
given:
_ * _.getUserFromDB(*_) >> true
when:
def syncUserResult = userManagement.syncUser(username, password)
then:
syncGuidResult == true
}
【问题讨论】:
-
最干净的解决方案是将
getUserFromDB移动到一个单独的类。如果你真的想要一个半模拟,你可以使用Spy来实现它。详情请见docs.spockframework.org。