我遇到了测试类的问题,该类在构造函数中实现了与 EJB 的一些本地连接。此连接仅在构造函数内部使用,并设置实例化类的一些私有属性。
我要测试的 MyClass:
public class MyClass {
private String myValue;
public MyClass() throws Exception {
MyBeanLocal local = EJBFactory.getLocal(MyBeanLocal.class);
myValue = local.fetchValue();
}
public void processValue() {
... do some String magic which should be tested ...
}
public String getValue() {
return myValue;
}
}
EJBFactory 包含一些增强的查找(带有缓存)并且可以返回本地或远程连接(远程需要服务器位置)。
MyBeanLocal 接口
public interface MyLocalBean {
public String fetchValue();
}
最后是我想要测试 MyClass.processValue 方法的 junit 类:
public class MyClassTest {
private MyClass myClass;
@Before
public void setUp() {
myClass = new MyClass();
}
@Test
public void testProcessValue() {
Assert.assertEquals(myClass.processValue(), "MY EXPECTED VALUE");
}
}
问题是当我在本地机器(或像 Hudson 或 Jenkins 之类的自动测试机器)上运行 JUnit 并且 bean 在与我的本地不同的应用程序服务器上下文上运行时如何测试情况。我无法接触生产代码,只需要编写测试。
实际上我不需要使 MyBeanLocal 功能,但我需要 myValue 集。
我正在考虑嘲笑,但我不熟悉。