java - 使用私有(private)环境变量对类进行单元测试

标签 java junit glassfish environment-variables

我有一个 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/

相关文章:

glassfish - Servlet 异常 + 类转换异常 + Glassfish + Netbeans + JPA 实体 + Vaadin

java - 无法通过 java Runtime.getRuntime.exec() 发送 JSON 字符串;

java - 在 TextArea 中显示文件内容

java - Memcache 和最终一致性

java - 将代码库从 SimpleMailMessage 更改为 MimeMessage 后单元测试中断

spring - JUnit 测试类未出现在 JMeter 中

java - Android:测试改造成功、失败

java - 禁用 Glassfish 4.1 连接保持 Activity

java - 在 glassfish Web 服务应用程序中找不到请求目标的有效认证路径

java - 为 Android 上的每个 xml 标签添加更多 TextView