网络调侃
2007-11-09 13:51
218 查看
测试类与被测试类在不同的Plug-in, 但有相同的包名
org.myym.myplugin
org.myym.myplugin.test
当Run as JUnit test时没有错误, 但当Run as JUnit Plug-in test时报错:java.lang.IllegalAccessError
这是因为Eclipse的插件机制,MyClass和MyClassTest被装载在各自不同的ClassLoader中,从而不能调用包可见的方法。
可以将org.myym.myplugin.test创建成org.myym.myplugin的fragment使得装载在同一个ClassLoader中. see http://www.modumind.com/2007/06/20/unit-testing-plug-ins-with-fragments/
比较简单而彻底的方法是不要利用package visible来测试方法。如果该方法比较复杂必须单独测试,可以将它Extract成单独的类来测试。
org.myym.myplugin
package org.myym.myplugin; public class MyClass { int myMethod() { return 1; } }
org.myym.myplugin.test
package org.myym.myplugin; import static org.junit.Assert.*; import org.junit.Test; import org.myym.myplugin.MyClass; public class MyClassTest { MyClass myClass = new MyClass(); @Test public void myMethodReturnOne(){ assertEquals(1, myClass.myMethod()); } }
当Run as JUnit test时没有错误, 但当Run as JUnit Plug-in test时报错:java.lang.IllegalAccessError
这是因为Eclipse的插件机制,MyClass和MyClassTest被装载在各自不同的ClassLoader中,从而不能调用包可见的方法。
可以将org.myym.myplugin.test创建成org.myym.myplugin的fragment使得装载在同一个ClassLoader中. see http://www.modumind.com/2007/06/20/unit-testing-plug-ins-with-fragments/
比较简单而彻底的方法是不要利用package visible来测试方法。如果该方法比较复杂必须单独测试,可以将它Extract成单独的类来测试。
相关文章推荐
- [英语阅读]普京硬汉形象遭网络歌曲调侃
- 网络调侃用语编辑
- 网络管理之网关篇
- 图像处理与视觉计算的网络资源和一些评述
- 网络游戏《威尔德大陆》初期策划
- [转自网络]《十年只为一个摧残的梦》
- 网络丢包问题处理
- Ubuntu 14.04.2 系统无线网络不稳定问题
- 深度学习与自然语言处理之四:卷积神经网络模型(CNN)
- Nebula3学习笔记(6): 网络系统
- 网络数据传送的三种方法
- java网络通信编程
- 网络实时流量监测工具iftop
- 服务器网络编程注意事项
- cisco 网络故障常用命令
- 浅谈网络数据包传递过程中涉及的话题
- 网络工程师应掌握的50个路由器知识…
- Android中监听判断网络连接状态的方法
- 全连接网络 VS 卷积网络
- 网络报表学习体会心得!