Search code examples
mockitokotlinsetterverify

How to verify call on setter in kotlin using mockito?


interface LoginDisplay {
    var username: String
    var password: String
}


class LoginActivityLoginDisplay : LoginDisplay {

    override var username: String
        get() = usernameEditView.text.toString()
        set(value) {
            usernameEditView.setText(value)
        }

    override var password: String
        get() = passwordEditView.text.toString()
        set(value) {
            passwordEditView.setText(value)
        }

}

This is the example of code I'd like to test with Mockito as follows:

verify(contract.loginDisplay).username

Tricky thing is - that in this call i can only verify getter of field username, meanwhile I'd like to test call on setter of this field.

Any help?


Solution

  • It's simpler than you think. Calling:

    verify(contract.loginDisplay).username = ""
    

    will have the result you want. Setter setUsername on the mock of contract.loginDisplay will be called.