Android 我们如何才能不为单元测试取消初始化不可为null的对象?
我试图测试在抛出异常时是否会出现错误对话框。为此,我想模拟一个未初始化的DPropertyAcessException来测试这段代码:Android 我们如何才能不为单元测试取消初始化不可为null的对象?,android,unit-testing,android-testing,Android,Unit Testing,Android Testing,我试图测试在抛出异常时是否会出现错误对话框。为此,我想模拟一个未初始化的DPropertyAcessException来测试这段代码: try { account.solde?.let { view?.displaySolde(it) } } catch (ex : Exception) { view?.displayErrorMessage() } 我的测试是这样的: @Before fun setUp() { view = mock(AccountDetailAct
try {
account.solde?.let { view?.displaySolde(it) }
} catch (ex : Exception) {
view?.displayErrorMessage()
}
我的测试是这样的:
@Before
fun setUp() {
view = mock(AccountDetailActivity::class.java)
presenter = AccountDetailPresenterImpl(
mock(OperationServiceFactory::class.java),
mock(StatisticsHelper::class.java)
)
presenter.view = view
}
@Test
fun testAccountIsNotInitialized() {
presenter.account = null
verify(view).displayErrorMessage()
}
但是参数account不能为null或未初始化,因为它是非null类型
您是否有一个变通方法来测试错误对话框是否正确显示
谢谢你为什么捕获到一个永远不会抛出的异常?它有时会抛出,我不知道为什么,它会使应用程序崩溃,现在我只想显示一个对话框来防止崩溃。你不知道它为什么抛出?我同意,你应该调查这个异常。这就是重点:你不能忽略错误,你要修复它们。我不知道为什么帐户属性有时没有初始化。我同意我需要修复它,但现在我只需要防止崩溃。