Проблема заключается в том, что тест завершается до вызова обратного вызова, и assert
находится в неправильном потоке. Вы должны скопировать результат обратного вызова обратно в основной поток. Используйте CompletableFuture
. Если вы хотите не пройти тест по истечении определенного периода времени, вы можете использовать метод get
со значением времени ожидания:
@RunWith(AndroidJUnit4::class)
class NetworkApiTest {
var networkApi: NetworkApi? = null
@Test
fun testEmptyToken() {
val future = CompletableFuture()
networkApi = NetworkApi("")
networkApi?.getToken {
future.complete(it)
}
val result = future.get(3,TimeUnit.SECONDS)
Assert.assertThat(it, isEmptyOrNullString())
}
}
У вас есть добавить ссылку на проект. Если вы используете Visual Studio, щелкните правой кнопкой мыши проект в обозревателе решений и выберите Добавить ссылку ...
Щелкните правой кнопкой мыши папку «Ссылки» и нажмите «Добавить ссылку», а затем выберите System.Windows на вкладке .NET.
Мы обнаружили, что нам нужно было зайти в папку Silverlight и найти файл System.Windows.dll, и теперь все хорошо, спасибо за помощь!
Добавьте ссылку на сборку, как и любую другую ссылку на сборку каркаса:
ну, на самом деле это был system.windows.presentation в моем приложении wpf ...