我正在尝试编写单元测试以添加2个数字,这正调用Service类add method(),还有一个类Adder()从add()方法调用
在单元测试用例中,我的预期结果与单元测试类中的硬编码不同,如何解决此问题。我在代码中做错了吗?
单元测试课-
class ControllerTest extends Specification {
Service src
HelperAdd hd
def setup() {
hd = Mock()
src = new Service(
hd: hd
)
}
def "Add 2 numbers"() {
AddModel request = new AddModel()
given: "input"
request.setA(2)
request.setB(3)
when:
src.add(request)
then:
1 * hd.add(_) >> 2
expect:"4"
}
}
Service class --
class Service {
@Autowired
HelperAdd hd
@PostMapping(value="/getdocuments")
def add(@RequestBody AddModel request) {
int a = request.a
int b = request.b
int d = hd.add(a)
int c = a+d
return c
}
}
HelperAdd class--
class HelperAdd {
def add(int a)
{
int k = a+4
return k
}
}
Model class --
@Canonical
class AddModel {
int a
int b
}
最佳答案
我不明白你的问题。测试通过。但是,您的测试语法很奇怪。这个怎么样?
def "Add 2 numbers"() {
given: "input"
def request = new AddModel(a: 2, b: 3)
when:
def result = src.add(request)
then:
1 * hd.add(_) >> 2
result == 4
}
关于grails - 如何通过模拟对象并期望一些预期结果来编写Spock单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50255568/