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

如何在Kotlin对象单例类中测试add方法,kotlin,junit,Kotlin,Junit,我试图在我的object kotlin类中进行一些测试,但是当我试图传递对象时,我可能会在thenReturn方法中得到一个错误。我得到一个要求:单位!找到结帐台。有人可以告诉我如何测试它 如果删除thenReturn方法,则会出现以下错误: Hints: 1. missing thenReturn() 2. you are trying to stub a final method, which is not supported 3: you are stubbing the behav

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

如果删除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)
    }
objectcheckoutrepository:CheckoutContract.Model{
var checkout:MutableList=mutableListOf()
覆盖趣味addProductToShoppingCart(checkoutProduct:Checkout){
checkout.add(checkoutProduct)
}
覆盖有趣的getProductsInShoppinCart():列表{
退房
}
重写签出(){
checkout.clear()
}
}
@试验
有趣的测试{
val mock=mock()
var checkout=签出(“凭证”、“凭证”,35.0,5)
mock.addProductToShoppingCart(签出)
val answer=mock.getProductsInShoppinCart()
`当`(mock.addProductToShoppingCart(签出))。然后返回(签出)
assertNotNull(签出)
资产质量(结帐、回答)
}

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

如果您希望checkcheckout类在函数中进行更改,那么测试用例将通过

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

在函数addProductToShoppingCart中没有任何返回类型是的,我不需要函数中的返回类型。那么,如何测试addProductToShoppingCart方法是否有效?是的,我不需要返回类型。如果删除thenReturn,则会出现错误:缺少thenReturn(),请检查我的问题。我想做的是测试addProductToShoppingCart是否正常工作