使用 JMockit 具有相同模拟接口的 2 个对象返回相同的值
我做了一个简单的测试类来简化我的实际问题:
public class BidonTest {
@Mocked
IBidon ibidon;
@Mocked
IBidon ibidon2;
@Mocked
Bidon bidon;
@Mocked
Bidon bidon2;
@Test
public void testBidon(){
new NonStrictExpectations(2, Bidon.class){
{
ibidon.doIt(); result = "i: coco";
ibidon2.doIt(); result = "i: ismael et jordan";
bidon.doIt(); result = "c: coco";
bidon2.doIt(); result = "c: ismael et jordan";
}
};
System.out.println(ibidon.doIt());
System.out.println(ibidon2.doIt());
System.out.println(bidon.doIt());
System.out.println(bidon2.doIt());
}
public interface IBidon{
public String doIt();
}
public class Bidon implements IBidon{
@Override
public String doIt(){
return "toto";
}
}
}
下面是测试结果:
i: coco
i: coco
c: coco
c: ismael et jordan
我的第一个问题是:为什么 ibidon2 返回“coco”? (即使我的想法很少,但也许这里有人是 JMockit 专家:D) 我的第二个问题是:我如何更改它以使其返回“ismael et jordan”?
I made a simple Test Class to simplify my actual problem :
public class BidonTest {
@Mocked
IBidon ibidon;
@Mocked
IBidon ibidon2;
@Mocked
Bidon bidon;
@Mocked
Bidon bidon2;
@Test
public void testBidon(){
new NonStrictExpectations(2, Bidon.class){
{
ibidon.doIt(); result = "i: coco";
ibidon2.doIt(); result = "i: ismael et jordan";
bidon.doIt(); result = "c: coco";
bidon2.doIt(); result = "c: ismael et jordan";
}
};
System.out.println(ibidon.doIt());
System.out.println(ibidon2.doIt());
System.out.println(bidon.doIt());
System.out.println(bidon2.doIt());
}
public interface IBidon{
public String doIt();
}
public class Bidon implements IBidon{
@Override
public String doIt(){
return "toto";
}
}
}
Below, the test result :
i: coco
i: coco
c: coco
c: ismael et jordan
My first question is : why ibidon2 returns "coco" ? (even if i have few ideas, but maybe someone here is a JMockit expert :D )
My second question is : how can i change it to make it return "ismael et jordan" ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
修复源后,它对我来说效果很好。
制作人:
您使用的是什么版本?以上是通过 0.999.12 进行的。
(也不确定为什么在这里使用调用计数,因为它依赖于
NonStrictInitation
来避免断言。)It works fine for me, after fixing your source.
Produces:
What version are you using? The above was via 0.999.12.
(Also not sure why you're using an invocation count here since it depends on being a
NonStrictInvocation
to avoid the assert.)