我写了一个夹具:
!define TEST_SYSTEM {slim}
!path E:\eclipse\eclipse_workspace\FitnesseDemo\bin
计算器示例
|com.example.qc.fixture.CalcFixture|
|pad1|pad2|margin1|margin2|get Padding?|get Margin?|
|7|8|8|8|25|26|
在实际代码中,我需要模拟一个第三方类。 (三角洲) 我已经为此编写了代码,但是如何在fitnesse中包含该代码。
我创建了一个包含以下内容的SetUp页面:
!define TEST_SYSTEM {slim}
!path E:\eclipse\eclipse_workspace\FitnesseDemo\bin
!path E:\Docs\fitnesse\powermock-mockito-1.3.6-full.jar
!path E:\Docs\fitnesse\mockito-all.jar
!path E:\Docs\Junit\powermock-module-javaagent-1.4.10.jar
|Import|
|com.example.DeltaMock|
模拟对象没有被调用。相反,真正的对象被调用。 我的SetUp页面代码是错误的吗?
首先我尝试在CalcFixture中进行模拟,但它始终采用真实对象。 在calc fixture中我有以下代码
public int getPadding() throws Exception {
Calc calc = new Calc();
Delta ref = PowerMockito.mock(Delta.class);
PowerMockito.whenNew(Delta.class).withNoArguments().thenReturn(ref);
System.out.println("DeltaMocking.padding(rerf=== )" + ref);
Mockito.stub(ref.padding()).toReturn(10);
Padding = calc.addpadding(pad1, pad2);
return Padding;
}
Addpadding方法具有以下代码:
public int addpadding(int x, int y) {
int k=0;
Delta ref = new Delta();
System.out.println("Calc.addpadding() refff="+ref);
int z = ref.padding();
k = x + y + z;
return k;
}
Delta的模拟对象永远不会被调用。
请帮我解决..
答案 0 :(得分:0)
您的Fitnesse测试不应该关心您是否使用模拟对象或真实对象进行测试。所有工作都在CalcFixture
进行 - 这是您应该使用Mockito模拟所需对象的地方。