我是jUnit和一般单元测试的新手,并且一直试图设置我的测试环境并且整天都失败了。这是试图在我的Android应用程序中测试一个方法。
我在java类所在的同一个包中添加了一个测试类。我添加了一个方法如下:
@Test
public void testIsExpectedNote() {
assertTrue(Frequency.isExpectedNote(440, "A"));
}//should return true
以下堆栈跟踪失败:
java.lang.NoClassDefFoundError: android/util/Log
at dataLogicLayer.Frequency.isExpectedNote(Frequency.java:13)
at dataLogicLayer.FrequencyTest.testIsExpectedNote(FrequencyTest.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
Caused by: java.lang.ClassNotFoundException: android.util.Log
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 25 more
任何想法出了什么问题?我一直在玩我的运行配置,在类路径中我有:
jre system library [jre7]
junit 4
答案 0 :(得分:1)
你的classpath中有android sdk吗?在类路径中搜索包含类android.util.Log的jar
问候
螬
答案 1 :(得分:1)
答案是制作一个新项目并在那里进行测试,必须使其成为一个android junit测试,并确保运行配置是正确的。感谢Grub的帮助
答案 2 :(得分:1)
好像你在混合Android SDK和Java SDK。你不应该这样做。 Android是一个自给自足的库。