В моем тесте я хотел макетировать класс без конструктора, который, как я выяснил, для него является конечным классом;
MessageAnimation
class MessageAnimation {
fun fadeIn(layout: View, delay: Int) {
val showMessage = AlphaAnimation(0.0f, 1.0f)
showMessage.fillAfter = true
showMessage.startOffset = delay.toLong()
showMessage.duration = 1500
layout.startAnimation(showMessage)
}
fun fadeOut(view: View, delay: Int) {
val showMessage = AlphaAnimation(1.0f, 0.0f)
showMessage.fillAfter = true
showMessage.startOffset = delay.toLong()
showMessage.duration = 1500
showMessage.start()
view.startAnimation(showMessage)
}
fun moveUp(layout: LinearLayout, delay: Int) {
val objectAnimator = ObjectAnimator.ofFloat(layout, "translationY", (-125.0).toFloat())
objectAnimator.startDelay = delay.toLong()
objectAnimator.duration = 1500
objectAnimator.start()
}
fun moveDown(layout: LinearLayout, delay: Int) {
val objectAnimator = ObjectAnimator.ofFloat(layout, "translationY", (-125.0).toFloat())
objectAnimator.startDelay = delay.toLong()
objectAnimator.duration = 1500
objectAnimator.start()
}
fun moveOutOfScreen(layout: LinearLayout, delay: Int) {
val objectAnimator = ObjectAnimator.ofFloat(layout, "translationY", (-300.0).toFloat())
objectAnimator.startDelay = delay.toLong()
objectAnimator.duration = 1500
objectAnimator.start()
}
}
В тесте я хочу издеваться над этим классом, чтобы выяснить, могу ли я использовать PowerMock
для этого. Я определил, что класс должен использовать это, и я также подготовил тест, чтобы использовать его, определив это. Тем не менее, я получил ошибку за то, что не готовил этот класс до того, как его осмеяли.
Кто-нибудь знает, почему это так?
ActivityTest.kt
@RunWith(PowerMockRunner::class)
@PrepareForTest(MessageAnimation::class)
class ActivityTest {
private val messageAnimationMock = mockStatic(MessageAnimation::class.java)
// other code
}
Ошибка:
org.powermock.api.mockito.ClassNotPreparedException:
[Ljava.lang.Object;@1a6d8329
The class robot.fsrt.robotguest.common.animation.MessageAnimation not prepared for test.
at org.powermock.api.mockito.expectation.reporter.MockitoPowerMockReporter.classNotPrepared(MockitoPowerMockReporter.java:29)
at org.powermock.api.mockito.internal.mockcreation.MockTypeValidatorFactory$DefaultMockTypeValidator.validate(MockTypeValidatorFactory.java:37)
at org.powermock.api.mockito.internal.mockcreation.AbstractMockCreator.validateType(AbstractMockCreator.java:10)
at org.powermock.api.mockito.internal.mockcreation.DefaultMockCreator.createMock(DefaultMockCreator.java:49)
at org.powermock.api.mockito.internal.mockcreation.DefaultMockCreator.mock(DefaultMockCreator.java:40)
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:62)
at robot.fsrt.robotguest.activities.ActivityTest.<init>(ActivityTest.kt:24)