パブリックメソッドをユニットテストしたいEJBがあります。私はEJBをpojoとしてテストしています。だから私はそれをインスタンス化してパブリックメソッドを呼び出しました。
問題は、パブリックメソッドがいくつかのGlassfish環境プロパティを設定し、環境変数がプライベートになることです。そのため、クラスの外に設定することはできず、環境オブジェクトに対してそのパブリックメソッドを呼び出すだけで、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の場合、nullポインタ例外がスローされます。
テストクラスから、上記のクラスをインスタンス化して、setupメソッドを呼び出しました。
ありがとう。