如何在 Kotlin 对象单例类中测试添加方法



我正在尝试在我的对象 kotlin 类中进行一些测试,但是当我尝试传递对象时,我的 thenReturn 方法可能会出错。我得到一个要求:单位!找到结帐。有人可以指出我如何测试它?

如果我删除然后返回方法,我会收到此错误:

Hints:
1. missing thenReturn()
2. you are trying to stub a final method, which is not supported
3: you are stubbing the behaviour of another mock inside before 'thenReturn' instruction if completed

我参考了这个链接,但我无法得到它。

object CheckoutRepository: CheckoutContract.Model {
var checkout: MutableList<Checkout> = mutableListOf<Checkout>()
override fun addProductToShoppingCart(checkoutProduct: Checkout){
checkout.add(checkoutProduct)
}
override fun getProductsInShoppinCart() : List<Checkout>?{
return checkout
}
override fun cleanCheckout(){
checkout.clear()
}
}

@Test
fun test_with_mock() {
val mock = mock<CheckoutContract.Model>()
var checkout = Checkout("VOUCHER", "voucher", 35.0, 5)
mock.addProductToShoppingCart(checkout)
val answer = mock.getProductsInShoppinCart()
`when`(mock.addProductToShoppingCart(checkout)).thenReturn(checkout)
assertNotNull(checkout)
assertEquals(checkout, answer)
}

在你的函数中,addProductToShoppingCart 没有任何返回类型。

如果你想检查结帐类在函数中进行更改,那么测试用例将通过

override fun addProductToShoppingCart(checkoutProduct: Checkout):Checkout{
checkout.add(checkoutProduct)
return checkout
}

最新更新