title: Verify method call with implicit default value
body: <p>I'd like to understand some behavior using Mockito and Scala's default parameters.</p>
  
  <p>Here is a minimal example: </p>
  
  <pre><code>trait SomeImplicit
  
  object SomeService {
    val AnyImplicit = new SomeImplicit {}
  }
  
  trait SomeService {
    def doWork(param: String)(implicit di: SomeImplicit = SomeService.AnyImplicit)
  }
  </code></pre>
  
  <p>Let's call the <code>doWork</code> method:</p>
  
  <pre><code>class SomeService$Test extends WordSpec with MockitoSugar {
    "SomeService" should {
      "doWork" in {
        val dodo = mock[SomeService]
        val expectedParameter = "ok"
  
        dodo.doWork(expectedParameter)
  
        verify(dodo, times(1)).doWork(expectedParameter)(SomeService.AnyImplicit)
        verifyNoMoreInteractions(dodo)
      }
    }
  }
  </code></pre>
  
  <p>Spontaneously, I'd have though it would work. But is does not. I get:</p>
  
  <pre><code>Argument(s) are different! Wanted:
  someService.doWork(
      "ok",
      SomeService$$anon$1@264c1c97
  );
  -&gt; at SomeService$Test$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SomeService$Test.scala:25)
  Actual invocation has different arguments:
  someService.doWork(
      "ok",
      null
  );
  -&gt; at SomeService$Test$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SomeService$Test.scala:23)
  
  Argument(s) are different! Wanted:
  someService.doWork(
      "ok",
      SomeService$$anon$1@264c1c97
  );
  -&gt; at SomeService$Test$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SomeService$Test.scala:25)
  Actual invocation has different arguments:
  someService.doWork(
      "ok",
      null
  );
  -&gt; at SomeService$Test$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SomeService$Test.scala:23)
  </code></pre>