我有一个 EJB,我想对其公共(public)方法进行单元测试。我正在将 EJB 作为 pojo 进行测试。所以我只是实例化它并调用公共(public)方法。
问题是公共(public)方法设置了一些 glassfish 环境属性,环境变量是私有(private)的。所以我无法在类之外设置它,当我只是为环境对象调用该公共(public)方法时,它会抛出 nullPointerException。
我要测试的类有,
@Resource(name="NameServiceEnvironment")
private Properties nameServiceEnvironment;
public void setup() {
// Set the environment.
Properties environment = new Properties();
environment.setProperty("name.host", this.nameServiceEnvironment.getProperty(NAME_HOST));
environment.setProperty("name.port", this.nameServiceEnvironment.getProperty(NAME_PORT));
...}
所以现在对于 nameServiceEnvironment 它会抛出空指针异常。
现在在测试类中我刚刚实例化了上面的类并调用了设置方法。
谢谢。
最佳答案
您始终可以访问,甚至可以访问私有(private)方法。在您的测试中使用反射来访问私有(private)属性 - 设置它们并继续使用。
关于java - 使用私有(private)环境变量对类进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480181/