You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Patrick Rhomberg (JIRA)" <ji...@apache.org> on 2018/02/08 21:44:00 UTC

[jira] [Created] (GEODE-4642) PowerMock any() arguments in tests can fail intermittently

Patrick Rhomberg created GEODE-4642:
---------------------------------------

             Summary: PowerMock any() arguments in tests can fail intermittently
                 Key: GEODE-4642
                 URL: https://issues.apache.org/jira/browse/GEODE-4642
             Project: Geode
          Issue Type: Bug
            Reporter: Patrick Rhomberg


See the Travis failure of PR #1415: https://travis-ci.org/apache/geode/builds/339119584?utm_source=github_status&utm_medium=notification

{noformat}
:geode-core:testPicked up _JAVA_OPTIONS: -Xmx1024m -Xms512m
org.apache.geode.cache.query.internal.types.TypeUtilsJUnitTest > getRegionEntryTypeShouldReturnTheProperTypeImplementation FAILED
    org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
    Misplaced or misused argument matcher detected here:
    -> at org.apache.geode.cache.query.internal.types.TypeUtilsJUnitTest.lambda$booleanCompareShouldThrowExceptionIfValuesAreNotInstancesOfBoolean$7(TypeUtilsJUnitTest.java:441)
    -> at org.apache.geode.cache.query.internal.types.TypeUtilsJUnitTest.lambda$booleanCompareShouldThrowExceptionIfValuesAreNotInstancesOfBoolean$8(TypeUtilsJUnitTest.java:444)
    -> at org.apache.geode.cache.query.internal.types.TypeUtilsJUnitTest.lambda$booleanCompareShouldThrowExceptionIfValuesAreNotInstancesOfBoolean$9(TypeUtilsJUnitTest.java:447)
    You cannot use argument matchers outside of verification or stubbing.
    Examples of correct usage of argument matchers:
        when(mock.get(anyInt())).thenReturn(null);
        doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject());
        verify(mock).someMethod(contains("foo"))
    This message may appear after an NullPointerException if the last matcher is returning an object 
    like any() but the stubbed method signature expect a primitive argument, in this case,
    use primitive alternatives.
        when(mock.get(any())); // bad use, will raise NPE
        when(mock.get(anyInt())); // correct usage use
    Also, this error might show up because you use argument matchers with methods that cannot be mocked.
    Following methods *cannot* be stubbed/verified: final/private/equals()/hashCode().
    Mocking methods declared on non-public parent classes is not supported.
        at org.apache.geode.cache.query.internal.types.TypeUtilsJUnitTest.getRegionEntryTypeShouldReturnTheProperTypeImplementation(TypeUtilsJUnitTest.java:429)
4020 tests completed, 1 failed, 8 skipped
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)