2013-01-18 2 views
2

Я пытаюсь использовать powermock для издевки частного метода, но мой PowerMock не распознается в MockitoBusinessOperation MockitoBusinessOperation = PowerMock.createPartialMock(MockitoBusinessOperation.class, "inTestMethod");. Я использовал Maven и зависимости для Mockito и powermock определены в моем файле пКак издеваться над личным методом с помощью PowerMock с Mockito и TestNG

<dependency> 
    <groupId>org.mockito</groupId> 
    <artifactId>mockito-core</artifactId> 
    <version>1.8.5</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.powermock</groupId> 
    <artifactId>powermock-mockito-release-full</artifactId> 
    <version>1.4.9</version> 
    <scope>test</scope> 
</dependency> 

Я не знаю, если ошибка связана с powermock с TestNG или я делаю какую-то ошибку в своем коде.

@PrepareForTest(MockitoBusinessOperation.class) 
@Test(enabled = true) 
public void testReCalculatePrepaids() throws Exception { 
    MockitoBusinessOperation MockitoBusinessOperation = PowerMock.createPartialMock(MockitoBusinessOperation.class, "inTestMethod"); 
    PowerMock.expectPrivate(MockitoBusinessOperation, "inTestMethod", Id).andReturn("working fine"); 

    when(MockitoBusinessService.creditReport(this.Id)).thenReturn(new String("Decline by only Me")); 

    String report = MockitoBusinessService.creditReport(this.Id); 
    String mainReport = MockitoBusinessOperation.creditAproved(this.Id); 
} 

кого-то есть идеи или какие-либо подсказки приводят к решению

+0

Вы должны действительно рассмотреть использование пробелов вместо вкладок в вашем редакторе, это w но форматирование не очень хорошо копируется. Объем пространства в белом пространстве (1) универсален, вкладки - нет. –

+0

Спасибо за исправление формата – jan

ответ

0

В соответствии с documentation файл Maven должен иметь следующие определения:

<properties> 
    <powermock.version>1.5</powermock.version> 
</properties> 
<dependencies> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-module-testng</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-api-mockito</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
0

пожалуйста попробуйте этот способ

@Test 
     public void commandEndHandlerTest() throws Exception 
     { 
      Method retryClientDetail_privateMethod =yourclass.class.getDeclaredMethod("Your_function_name",null); 
      retryClientDetail_privateMethod.setAccessible(true); 
      retryClientDetail_privateMethod.invoke(yourclass.class, null); 
     }