2014-12-23 6 views
0

여기 내 POJO 클래스입니다 :안드로이드 Mockito는 POJO 클래스를 조롱하는 방법을

/** POJO 클래스는 JSON 응답 데이터를 저장하는 * */ 공용 클래스 SearchItem {

private String headline=""; 

private String mDefinition=""; 
private String nivURL=""; 

public String getHeadline() { 
    return headline; 
} 

public void setHeadline(String headline) { 
    this.headline = headline; 
} 

public String getImageURL() { 
    return nivURL; 
} 

public void setImageURL(String URL) { 
    this.nivURL = URL; 
} 

public String getDefinition() { 
    return mDefinition; 
} 

public void setDefinition(String definition) { 
    this.mDefinition = definition; 
} 

@Override 
public String toString() { 
    return "[ headline=" + headline + 
      " , imageView URL=" + nivURL + "]"; 
} 

}

import android.test.ActivityInstrumentationTestCase2; 
import android.widget.Button; 
import android.widget.EditText; 

import org.mockito.Mockito; 

/** 
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a> 
*/ 
public class ApplicationTest extends ActivityInstrumentationTestCase2<MainActivity> { 

    MainActivity mActivity; 
    private Button goBtn; 
    private RecyclerListAdapter mAdapter; 

    public ApplicationTest() { 
     super(MainActivity.class); 

    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 

     setActivityInitialTouchMode(false); 

     mActivity = getActivity(); 

     goBtn=(Button)mActivity.findViewById(
       R.id.btn_go); 

    } 
    @Override 
    protected void tearDown() throws Exception { 
     super.tearDown(); 
    } 
    public void testPreconditions() { 
     assertTrue(mActivity.isNetworkAvailable()); 
     isLayoutValid(); 
    } 

    public void isLayoutValid(){ 
     assertNotNull(goBtn); 

    } 




    public void testSomething(){ 

    //this fails 
    Mockito.mock(SearchItem.class); 
     } 

} 
:

여기 내 간단한 테스트는 클래스를 조롱하려고 여기

Running tests 
Test running started 
java.lang.VerifyError: org/mockito/cglib/core/ReflectUtils 
at org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167) 
at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) 
at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217) 
at org.mockito.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) 
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:117) 
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:109) 
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:105) 
at org.mockito.cglib.proxy.Enhancer.<clinit>(Enhancer.java:70) 
at org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass(ClassImposterizer.java:96) 
at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:60) 
at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:52) 
at org.mockito.internal.creation.CglibMockMaker.createMock(CglibMockMaker.java:24) 
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:32) 
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:59) 
at org.mockito.Mockito.mock(Mockito.java:1258) 
at org.mockito.Mockito.mock(Mockito.java:1135) 
at mypackage.ApplicationTest.testSomething(ApplicationTest.java:65) 

내 안드로이드 스튜디오 Gradle을 종속성은 다음과 같습니다 :

dependencies { 
    compile files('libs/volley.jar') 
    apt "org.androidannotations:androidannotations:3.0+"   
    compile "org.androidannotations:androidannotations-api:3.0+" 
    compile 'com.android.support:appcompat-v7:21.0.0' 
    compile 'com.android.support:recyclerview-v7:21.0.0' 
    compile 'com.android.support:cardview-v7:21.0.0' 
    compile 'com.jakewharton:butterknife:6.0.0' 
    compile 'com.squareup.dagger:dagger:1.2.2' 
    compile 'com.squareup:javawriter:2.5.1' 
    compile 'javax.inject:javax.inject:1' 
    compile 'org.mockito:mockito-all:1.10.8' 
    apt 'com.squareup.dagger:dagger-compiler:1.2.2' 
} 

어떻게 내가 mockito 오류를 해결할 수 있습니다 691,363,210 여기

는 로그 캣 출력입니까?

답변

0

종속성에 dexmaker libs를 추가하십시오.

androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0', 
androidTestCompile 'com.google.dexmaker:dexmaker:1.0', 

mockito가 dex 파일과 올바르게 상호 작용할 수 있도록이 파일을 포함해야합니다.

더 자세한 설명은 여기를 참조하십시오. http://corner.squareup.com/2012/10/mockito-android.html

관련 문제