2016-09-30 7 views
8

я следующий тест ...PowerMockito метания ClassNotPreparedException даже с @PrepareForTest помощью Scala Test

import org.scalatest.junit.JUnitRunner 
... 
@PowerMockRunnerDelegate(classOf[JUnitRunner]) 
@PrepareForTest(Array(classOf[AuditLog])) 
class ConnectorAPITest extends path.FreeSpec with ShouldMatchers { 
    "Mocked Tests" - { 
     println("This got called in the mocked tests.") 
     PowerMockito.mockStatic(classOf[AuditLog]); 
     ... 
    } 
} 

Но когда я бегу я получаю ...

An exception or error caused a run to abort: The class com.paxata.services.log.AuditLog not prepared for test. 
To prepare this class, add class to the '@PrepareForTest' annotation. 
In case if you don't use this annotation, add the annotation on class or method level. 
org.powermock.api.mockito.ClassNotPreparedException: 
The class com.paxata.services.log.AuditLog not prepared for test. 
To prepare this class, add class to the '@PrepareForTest' annotation. 

Который не имеет смысла учитывая, что аннотация уже есть? Это идиосинкразия теста Scala?

+0

Что произойдет, если вы пытаетесь использовать полный путь к классам в аннотации? – Yawar

+0

Я постараюсь, что сегодня, если смогу – Jackie

ответ

-1

У меня была такая же проблема с использованием FunSuite. Это работает, когда я обратился к Юнит.

@RunWith(classOf[PowerMockRunner]) 
@PrepareForTest(Array(classOf[SomeStaticClass])) 
class MyTestClass { 

    @Before 
    def setUp { 
    PowerMockito.mockStatic(classOf[SomeStaticClass]) 
    Mockito.when(SomeStaticClass.getSomeObject(1)).thenReturn(new SomeObject(1)) 
    } 

@Test 
def someTestMethod { 
} 

и т.д ...

+0

Но было бы здорово узнать, как заставить его работать с ScalaTest – Vadim

+0

Я пробовал то же самое, но тест scala не нашел тестов. – Jackie

+0

А, я вижу. Это не проблема для меня, я запускаю тесты с junit runner в IntelliJ Idea. – Vadim