我不能模拟测试用例中的任何对象。所以我一定做错了什么。我可以在没有的情况下运行我的测试用例,这很好。但只要我试着嘲笑一个物体。当我尝试运行测试用例时,我得到了以下错误。
java.lang.ExceptionInInitializerError
at org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass
(ClassImposterizer.java:85)
我在安卓工作室上运行我的安卓项目。下面是我的渐变文件看起来像的样子
apply plugin: 'android'
依赖项{compile fileTree(目录:"libs",包括:"*.jar")编译项目(':google-play-services_lib')编译项目(":facebook-sdk_lib")编译"de.greenrobot:greendao:1.3.7"编译"org.mockito:mmockito核心:1.9.5"}
安卓{
packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } compileSdkVersion 19 buildToolsVersion "19.1.0" lintOptions { abortOnError false } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java { srcDir 'src' srcDir 'src-gen' srcDir 'tests' } resources { srcDir 'src' srcDir 'src-gen' } aidl.srcDirs = ['src','src-gen'] renderscript.srcDirs = ['src','src-gen'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } androidTest.setRoot('tests') debug.setRoot('build-types/debug') release.setRoot('build-types/release') } }
我不知道它是否有大问题。这里还有我的一个测试类
public class ValueFormatTest extends AndroidTestCase
{
public ValueFormatTest()
{
/* Do Nothing! */
}
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception
{
super.setUp();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception
{
super.tearDown();
}
public final void testFormaterDateTime()
{
Mockito.mock(BaseConnection.class);
Assert.assertEquals("",ValueFormat.formatDateTime(getContext(),2,null));
Assert.assertEquals("",ValueFormat.formatDateTime(getContext(),1,null));
Assert.assertEquals("",ValueFormat.formatDateTime(getContext(), -1, null));
}
}
最后,这可以帮助理解我的类层次结构是什么样子的。如果这有助于
ProjectFolder
-.idea
-build
-DaoGenerator
-Facebook
-google-play-services
-ModuleCar
|-libs
|-build
|-src
|-src-gen
|-tests
|-lib
|-res
|-src.com.car.test
欢迎任何能让我走上解决这个问题的正确道路的帮助。非常感谢
我找到了解决问题的方法。在gradle.build
文件中。我改变了进口Mockito的方式。问题是它找不到dexmaker。
compile("org.mockito:mockito-core:1.9.5")
{
exclude group: 'org.hamcrest'
}
compile 'com.google.dexmaker:dexmaker:1.1'
compile 'com.google.dexmaker:dexmaker-mockito:1.1'