Also, that you can tell a mock to call the real method you are trying to test (line 9).
1 @Test
2 def testNullHandlerCallsStart(): Unit = {
3 predictor.setHandler(null)
4 when(predictor.log == null).thenAnswer(new Answer[Logger] {
5 def answer(invocation: InvocationOnMock): Logger = {
6 LoggerFactory.getLogger("Predictor")
7 }
8 })
9 when(predictor.enqueueEvent(any())).thenCallRealMethod()
10 val deactivation = new UnitUpdateNotification(unit, unit.updateStatus(Status.INACTIVE, Action.DEACTIVATED, "damaged", "user"))
11 callback.handle(deactivation)
12 verify(predictor).enqueueEvent(any(classOf[Event]))
13 }
One thing, I had to make the logger inside my Predictor class publicly visible for it to work.
No comments:
Post a Comment