Barry
Barry

Reputation: 1820

Mocking Scala void function using Mockito

I found a few answers for this but nothing is working for me.

Trying to mock Apache Shiro Subject interface login method which returns void.

Interface:

    void login(AuthenticationToken token) throws AuthenticationException;

I have tried :

   #1
  val subject = mock[Subject]
  doNothing().when(subject).login(new UsernamePasswordToken())

   #2
  val subject = mock[Subject]
  doNothing().when(subject).login(any[UsernamePasswordToken])

   #3
  when(subject.login(any[UsernamePasswordToken])).thenAnswer(new Answer[Void]() {
      override def answer(invocation: InvocationOnMock): Void = {
       null:Void
      }

I keep getting NullPointerException on login. My goal is test around the login method and test some success cases along with some failure cases where this method throws an exception.

Upvotes: 7

Views: 6928

Answers (1)

marios
marios

Reputation: 8996

The default behavior in Mockito is to return nothing if you don't "stub" a particular method. No need to force a void() function to doNothing() since it's doing nothing by default.

Upvotes: 10

Related Questions