java.lang.IllegalArgumentException : Not a mock : PowerMock 및 EasyMock의 java.lang.Class

Neil

PowerMock을 사용하여 Math의 정적 메서드를 테스트하는 테스트 케이스가 있습니다.

@RunWith(PowerMockRunner.class)
@PrepareForTest( { Math.class })
public class Test{
    @Test
        public void test2(){
            PowerMockito.mockStatic(Math.class);
            EasyMock.expect(Math.abs(-123)).andReturn(1);
            EasyMock.replay(Math.class);
            long returns = Math.abs(-123);
            EasyMock.verify(Math.class);
            org.junit.Assert.assertEquals(1,returns);
        }
}

내 pom.xml은 다음과 같습니다.

<dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>

그리고 나는

java.lang.IllegalArgumentException: Not a mock: java.lang.Class
    at org.easymock.internal.MocksControl.getControl(MocksControl.java:175)
    at org.easymock.EasyMock.getControl(EasyMock.java:2130)
    at org.easymock.EasyMock.replay(EasyMock.java:2032)

PowerMock을 사용하는 것은 이번이 처음이고, 정적 메서드를 테스트하려고하고 테스트 할 Java Math 클래스를 선택합니다. https://code.google.com/p/powermock/wiki/MockStatic 의 지침에있는 모든 부분을 수행 한 것 같습니다.

내 테스트 케이스에 어떤 문제가 있습니까?

Neil

EasyMock을 사용하는 대신 mockito를 사용하여 대체합니다.

    PowerMockito.mockStatic(Math.class);
    Mockito.when(Math.abs(-123)).thenReturn(1);
    int returns = Math.abs(-123);

이 코드는 Java 7에서 잘 작동하지만 Java 8에서는 실패합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

java.lang.IllegalStateException: no last call on a mock available with PowerMock and EasyMock

분류에서Dev

java.lang.IllegalStateException : PowerMock 및 EasyMock에서 사용할 수있는 mock에 대한 마지막 호출이 없습니다.

분류에서Dev

Red Hat 서버의 java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException : provider = network

분류에서Dev

오류 : java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException 직면

분류에서Dev

Android dexguard java.lang.IllegalArgumentException: Class class doesn't support metadata registration

분류에서Dev

java.lang.IllegalArgumentException : java.net.UnknownHostException : tmp

분류에서Dev

java -jar 및 java.lang.NoClassDefFoundError

분류에서Dev

java.lang.IllegalArgumentException : fromIndex (x)> toIndex (y)

분류에서Dev

PySpark pandas_udfs java.lang.IllegalArgumentException 오류

분류에서Dev

java.lang.IllegalArgumentException : 릴리스 관리

분류에서Dev

이상한 java.lang.IllegalArgumentException 예외

분류에서Dev

Caused by: java.lang.IllegalArgumentException: Host name may not be null

분류에서Dev

java.lang.IllegalArgumentException : 잘못된 base-64

분류에서Dev

ViewPager as listview row java.lang.IllegalArgumentException : No view found for id

분류에서Dev

java.lang.IllegalArgumentException: No view found for id for fragment NewLogFragment

분류에서Dev

Java.lang.IllegalArgumentException : host = null, port = 4444

분류에서Dev

Java.lang.IllegalArgumentException : host = null, port = 4444

분류에서Dev

InteliJ Play project import error: java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException: ungültiger Anbieter: null

분류에서Dev

java.lang.IllegalArgumentException : NamedQuery of name : findByName not found

분류에서Dev

개조 오류-java.lang.IllegalArgumentException

분류에서Dev

java.lang.IllegalArgumentException : 잘못된 키 코드

분류에서Dev

java.lang.IllegalArgumentException : 패턴의 여러 소수 구분 기호

분류에서Dev

Android (xamarin)의 DownloadManager에서 Java.Lang.IllegalArgumentException 발생

분류에서Dev

java.lang.NoSuchFieldError : Apache HttpComonents 및 Wildfly의 INSTANCE

분류에서Dev

ormlite - Caused by: java.lang.IllegalArgumentException: No fields have a DatabaseField annotation in class com.github.snowdream.android.a.a.j

분류에서Dev

java.lang.IllegalArgumentException : java.net.URISyntaxException : 절대 URI의 상대 경로 : Talend의 Hbase 용

Related 관련 기사

  1. 1

    java.lang.IllegalStateException: no last call on a mock available with PowerMock and EasyMock

  2. 2

    java.lang.IllegalStateException : PowerMock 및 EasyMock에서 사용할 수있는 mock에 대한 마지막 호출이 없습니다.

  3. 3

    Red Hat 서버의 java.lang.IllegalArgumentException

  4. 4

    java.lang.IllegalArgumentException : provider = network

  5. 5

    오류 : java.lang.IllegalArgumentException

  6. 6

    java.lang.IllegalArgumentException 직면

  7. 7

    Android dexguard java.lang.IllegalArgumentException: Class class doesn't support metadata registration

  8. 8

    java.lang.IllegalArgumentException : java.net.UnknownHostException : tmp

  9. 9

    java -jar 및 java.lang.NoClassDefFoundError

  10. 10

    java.lang.IllegalArgumentException : fromIndex (x)> toIndex (y)

  11. 11

    PySpark pandas_udfs java.lang.IllegalArgumentException 오류

  12. 12

    java.lang.IllegalArgumentException : 릴리스 관리

  13. 13

    이상한 java.lang.IllegalArgumentException 예외

  14. 14

    Caused by: java.lang.IllegalArgumentException: Host name may not be null

  15. 15

    java.lang.IllegalArgumentException : 잘못된 base-64

  16. 16

    ViewPager as listview row java.lang.IllegalArgumentException : No view found for id

  17. 17

    java.lang.IllegalArgumentException: No view found for id for fragment NewLogFragment

  18. 18

    Java.lang.IllegalArgumentException : host = null, port = 4444

  19. 19

    Java.lang.IllegalArgumentException : host = null, port = 4444

  20. 20

    InteliJ Play project import error: java.lang.IllegalArgumentException

  21. 21

    java.lang.IllegalArgumentException: ungültiger Anbieter: null

  22. 22

    java.lang.IllegalArgumentException : NamedQuery of name : findByName not found

  23. 23

    개조 오류-java.lang.IllegalArgumentException

  24. 24

    java.lang.IllegalArgumentException : 잘못된 키 코드

  25. 25

    java.lang.IllegalArgumentException : 패턴의 여러 소수 구분 기호

  26. 26

    Android (xamarin)의 DownloadManager에서 Java.Lang.IllegalArgumentException 발생

  27. 27

    java.lang.NoSuchFieldError : Apache HttpComonents 및 Wildfly의 INSTANCE

  28. 28

    ormlite - Caused by: java.lang.IllegalArgumentException: No fields have a DatabaseField annotation in class com.github.snowdream.android.a.a.j

  29. 29

    java.lang.IllegalArgumentException : java.net.URISyntaxException : 절대 URI의 상대 경로 : Talend의 Hbase 용

뜨겁다태그

보관