Platform.getBundle(Activator.PLUGIN_ID)返回null

时间:2014-02-06 11:29:28

标签: plugins junit junit4

我有一个前任

的功能
public void func {
  ....
  ....
  URL url = Platform.getBundle(Activator.PLUGIN_ID).getEntry("config");
  ....
  ....
}

现在我正在为上面的函数编写Junit测试用例,该函数位于不同的测试插件中。 当我在junit测试方法中调用func时,我得到空指针异常。

我试过打印

Platform.getBundle(Activator.PLUGIN_ID) which returns null
Platform.isRunning() which returns false.

请让我知道如何解决这个问题?我可以做什么,以便我的JUnit测试用例成功。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

Just a Pseudo Code...

      private Platform platform;

      public void func() {
              //....
              //....
              URL url = getPlatForm().getEntry("config");
              //....
              //....
            }

        public Platform getPlatForm() {
            return platform.getBundle(Activator.PLUGIN_ID);
        } 


In your testcase,

   override the getPlatForm() method with a mock/stub.


  Class yourClass = new yourClass() {
   @override
   public Platform getPlatForm() {
        return mock/stub!!;
    }
  }