gpt4 book ai didi

java - 测试是否对返回 Void 的方法内的变量调用了方法

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

假设我有一个方法,例如:

Object myRandomObject;

...

void foo(boolean input) {
if(input) {
myRandomObject.toString();
}
}

如何编写 jUnit 测试来测试 toString() 方法实际上在 myRandomObject 上调用?

最佳答案

如果您的 myRandomObject 只是使用一些带有覆盖 toString 实现的测试类定义来模拟自身,则设置一些标志,然后在此标志上断言

private class TestRandomObject {
private boolean toStringCalled;

@Override
public String toString {
this.toStringCalled = true;
return "test";
}
}

或者甚至您可以使用 Mockito verify 方法,例如

Object randomObjectMock = mock(Object.class); 
// ...
verify(randomObjectMock , times(1)).toString();

编辑不,你不能:)它会给你一个异常(exception),就像非常有趣的消息

Mockito cannot verify toString()

toString() is too often used behind of scenes (i.e. during String concatenation, in IDE debugging views)

他们说您可以 stub 这个方法,但即使 stub 这个方法也不允许您稍后验证。因此,我的第一个建议似乎是可行的

关于java - 测试是否对返回 Void 的方法内的变量调用了方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57326941/

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