2012-08-28 34 views
7

Tôi đang sử dụng mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar. Khi tôi chạy thử nghiệm đơn vị đơn giản này cho phương pháp cuối cùng chế nhạo trong lớp không phải cuối cùng.NoClassDefFoundError for MockitoInvocationHandler class

import static org.junit.Assert.assertEquals; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.powermock.api.mockito.PowerMockito; 
import org.powermock.core.classloader.annotations.PrepareForTest; 
import org.powermock.modules.junit4.PowerMockRunner; 

@RunWith(PowerMockRunner.class) 
@PrepareForTest(ABC.class) 
public class ABCTest { 

    @Test 
    public void finalCouldBeMock() { 
     final ABC abc = PowerMockito.mock(ABC.class); 
     PowerMockito.when(abc.myMethod()).thenReturn("toto"); 
     assertEquals("toto", abc.myMethod()); 
    } 

} 

Khi tôi chạy nó, tôi nhận java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler Caused by: java.lang.ClassNotFoundException: org.mockito.internal.MockitoInvocationHandler

Khi tôi tìm kiếm fo lớp MockitoInvocationHandler trong mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar. Tôi không thể tìm thấy. Cần trợ giúp về vấn đề này! Cảm ơn bạn

Trả lời

15

Mockito 1.9.5-rc1 phải được cấu trúc lại bên trong để cho phép nhà sản xuất giả lập bên thứ ba. MockitoInvocationHandler là một phần của nội bộ của Mockito (như tên gói cho thấy) lên đến Mockito 1.9.0.

Do những thay đổi này, hiện tại một số phiên bản cũ hơn Bản phát hành Powermock kể từ hôm nay không tương thích với bản phát hành Mockito mới nhất.

Một lý do khác để tránh chế giễu/stubbing trận chung kết hoặc tĩnh học;)

Hy vọng rằng sẽ giúp Chúc mừng,

+0

Hi Brice đã giúp rất nhiều. Cảm ơn bạn. –

+0

Cảm ơn bạn rất nhiều Brice bây giờ vấn đề của tôi được giải quyết. :) –

+0

Bạn được chào đón :) – Brice

Các vấn đề liên quan