【发布时间】:2012-05-15 02:29:30
【问题描述】:
我需要编写一个测试,其中可以验证一个类的行为,用于模拟类的不同行为。为了支持同一方法的多种行为,我们需要在同一个 TestClass 中多次模拟该类。
可以使用 JMockIt 吗?
这是我想要的一个例子。这是要测试的主类及其测试:
public class MyClass {
private Foo fooObj = null;
public setfooObj(Foo obj) {
fooObj = obj;
}
public boolean process() {
// uses fooObj.getName() to process
}
}
public class MyClassTest {
@MockClass(realClass = mypackage.Foo.class)
public static class MockFoo {
@Mock
public static boolean getName() {
return "test";
}
}
@Test
public void validateProcessing() {
MyClass testObj = new MyClass();
assertEquals(false, testObj.process);
}
}
现在,我想验证testObj.process() 方法的行为,当MockFoo.getName() 返回不同的值时。对于我的第一个断言,我想将其值用作“测试”(由模拟函数返回),但对于以下断言,我想使用不同的值进行检查。
【问题讨论】:
-
不清楚。有可能的。但我不知道你想要什么。
-
这是我想要的一个例子。这是要测试的主要类。
public class MyClass { private Foo fooObj = null; public setfooObj(Foo obj) { fooObj = obj; } public boolean process() { // uses fooObj.getName() to process } } Test Class: public class MyClassTest{ MockClass(realClass = package.Foo.class) public static class MockFoo { Mock public static boolean getName() { return "test"; } } Test public void validateProcessing(){ MyClass testObj = new MyClass(); assertEquals(false, testObj.process); } } -
@nnhthuan:请参考上面的代码。现在,我想验证 testObj.process() 方法的行为,当 MockFoo.getName() 返回不同的值时。对于我的第一个断言,我想将其值用作“测试”(由模拟函数返回),但对于以下断言,我想检查不同的值。请建议。谢谢!
-
请将示例添加到问题中。我无法以这种格式阅读您的代码。