keeganwitt / gmock

Automatically exported from code.google.com/p/gmock
6 stars 2 forks source link

Should be able to mock a method call using a null argument... #106

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
With 0.8.1, I like to do this:

def user = mock(){
  setEmail(null)
}

Which fails with this exception:
java.lang.NullPointerException
    at java.lang.Class.isAssignableFrom(Native Method)
    at org.gmock.internal.metaclass.MockDelegateMetaClass.pickMethod(MockDelegateMetaClass.java:66)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:968)
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
    at nuke.UserServiceTests$_testNonExistingAddUser_closure5.doCall(UserServiceTests.groovy:53)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
    at groovy.lang.Closure.call(Closure.java:276)
    at groovy.lang.Closure.call(Closure.java:289)
    at groovy.lang.Closure$call.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
    at groovy.lang.Closure$call.call(Unknown Source)
...

Instead, I have to do this:

def user=mock(){
  setEmail(match{it == null})
}
which works.

Original issue reported on code.google.com by ned.wolp...@gmail.com on 18 Feb 2011 at 12:43

GoogleCodeExporter commented 8 years ago

Original comment by JohnnyJianHY on 18 Feb 2011 at 1:41

GoogleCodeExporter commented 8 years ago

Original comment by JohnnyJianHY on 18 Feb 2011 at 7:00

GoogleCodeExporter commented 8 years ago

Original comment by JohnnyJianHY on 18 Feb 2011 at 7:53