gpt4 book ai didi

testcase - 如何为调用内部其他方法的方法编写 spock 测试用例

转载 作者:行者123 更新时间:2023-12-01 11:46:18 24 4
gpt4 key购买 nike

假设我有一个方法可以将一些数据填充到列表中,它在内部调用另一个方法(我正在独立测试)并将一些数据填充到列表中。这里最好的测试方法是什么?

如何测试外部方法?我是否也应该检查来自内部方法的数据,否则只测试外部方法填充的数据就可以了吗?

最佳答案

给定以下被测类:

class MyTestClass {
int getAPlusB() { return getA() + getB() }
int getA() { return 1 }
int getB() { return 2 }
}

我可以编写以下 spock 测试来检查算法是否正确,而且 getA()getB() 实际上是由 getAPlusB 调用的():

def "test using all methods"() { 
given: MyTestClass thing = Spy(MyTestClass)
when: def answer = thing.getAPlusB()
then: 1 * thing.getA()
1 * thing.getB()
answer == 3
}

到目前为止,这是在所有 3 个方法上运行所有代码 - getA 和 getB 被验证为被调用,但这些方法中的代码实际上正在执行。在您的情况下,您正在单独测试内部方法,也许您根本不想在此测试期间调用它们。通过使用 spock spy ,您可以实例化被测类的真实实例,但可以选择 stub 特定方法,您希望指定返回值:

def "test which stubs getA and getB"() {
given: MyTestClass thing = Spy(MyTestClass)
when: def answer = thing.getAPlusB()
then: 1 * thing.getA() >> 5
1 * thing.getB() >> 2
answer == 7
}

关于testcase - 如何为调用内部其他方法的方法编写 spock 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960280/

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