gpt4 book ai didi

java - EasyMock问题,调用实例上的方法但对如何获取该实例不感兴趣

转载 作者:行者123 更新时间:2023-12-01 16:03:20 25 4
gpt4 key购买 nike

我正在尝试使用 Easymock 测试算法,但我偶然发现了该算法的实现细节。有谁能给我一条出路吗?给我带来问题的部分是:

interface A {
B getB ();
}

interface B {
void setX (int x);
void doSomething ();
}

现在在测试算法的某个地方会发生这种情况:

a.getB ().setX (9);
a.getB ().doSomething ();
a.getB ().setX (16);

这会导致意外的方法调用 getB (),因为我的测试只声明了有趣的部分:

B b = EasyMock.createStrictControl ();
b.setX (9);
EasyMock.expectLastCall();
b.doSomething ();
EasyMock.expectLastCall();

我明白这是因为订单已检查。但即使我放置以下行也没有任何变化。

EasyMock.expect (a.getB ()).andReturn (b).anyTimes ();

实例a也是一个EasyMock代理。

谁能帮帮我?

最佳答案

根据最后一段代码使用 anyTimes(),但不要使用严格的模拟 - 这是强制执行排序的严格性。

诚然,我不记得 EasyMock 如何处理控件之间的排序的细节,但听起来您真的不关心排序。

关于java - EasyMock问题,调用实例上的方法但对如何获取该实例不感兴趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254146/

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