如何通过模拟对象并期待一些预期的结果来编写Spock单元测试

时间:2018-05-09 14:12:16

标签: grails groovy junit spock

我正在尝试编写单元测试以添加2个数字,这些数字正在调用Service class add method(),还有一个类HelperAdd从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

}

1 个答案:

答案 0 :(得分:0)

我不明白你的问题。测试通过。但是,您的测试语法很奇怪。怎么样?

<div class="bubble">
 some text
</div>