title: kotlin and ArgumentCaptor - IllegalStateException
body: <p>I have a problem with capturing the Class argument via ArgumentCaptor. My test class looks like this:</p>
  
  <pre><code>@RunWith(RobolectricGradleTestRunner::class)
  @Config(sdk = intArrayOf(21), constants = BuildConfig::class)
  class MyViewModelTest {
      @Mock
      lateinit var activityHandlerMock: IActivityHandler;
  
      @Captor
      lateinit var classCaptor: ArgumentCaptor&lt;Class&lt;BaseActivity&gt;&gt;
  
      @Captor
      lateinit var booleanCaptor: ArgumentCaptor&lt;Boolean&gt;
  
      private var objectUnderTest: MyViewModel? = null
  
      @Before
      fun setUp() {
          initMocks(this)
          ...
          objectUnderTest = MyViewModel(...)
      }
  
      @Test
      fun thatNavigatesToAddListScreenOnAddClicked(){
          //given
  
          //when
          objectUnderTest?.addNewList()
  
          //then
          verify(activityHandlerMock).navigateTo(classCaptor.capture(), booleanCaptor.capture())
          var clazz = classCaptor.value
          assertNotNull(clazz);
          assertFalse(booleanCaptor.value);
      }
  }
  </code></pre>
  
  <p>When I run the test, following exception is thrown:<br>
  java.lang.IllegalStateException: classCaptor.capture() must not be null<br>
  Is it possible to use argument captors in kotlin?</p>
  
  <p>=========
  UPDATE 1:<br>
  Kotlin: 1.0.0-beta-4584<br>
  Mockito: 1.10.19<br>
  Robolectric: 3.0</p>
  
  <p>=========
  UPDATE 2:<br>
   Stacktrace:<br></p>
  
  <pre><code>java.lang.IllegalStateException: classCaptor.capture() must not be null
  
  at com.example.view.model.ShoplistsViewModelTest.thatNavigatesToAddListScreenOnAddClicked(ShoplistsViewModelTest.kt:92)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
  at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
  at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
  at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:251)
  at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:188)
  at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:54)
  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
  at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
  at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:152)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
  at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
  at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
  at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
  at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
  </code></pre>