Mockito - Vous ne pouvez pas utiliser l'argument de rapprochement à l'extérieur de la vérification ou de cogner - ont essayé beaucoup de choses mais toujours pas de solution

J'ai le morceau de code suivant:

PowerMockito.mockStatic(DateUtils.class);      
//And this is the line which does the exception - notice it's a static function  
PowerMockito.when(DateUtils.isEqualByDateTime (any(Date.class),any(Date.class)).thenReturn(false);

La classe commence avec:

@RunWith(PowerMockRunner.class)
@PrepareForTest({CM9DateUtils.class,DateUtils.class})

Et je reçois org.Mockito.des exceptions.InvalidUseOfMatchersException...... Vous ne pouvez pas utiliser l'argument de rapprochement à l'extérieur de la vérification ou de cogner..... (L'erreur apparaît deux fois dans l'Échec à la Trace, mais à la fois le point sur la même ligne)

Dans d'autres endroits dans mon code l'utilisation de quand est fait et qu'il fonctionne correctement. Aussi, lors du débogage de mon code, j'ai trouvé que tout(Date.class) renvoie la valeur null.

J'ai essayé les solutions que j'ai vu d'autres personnes ont trouvé utile, mais pour moi ça ne fonctionne pas:

  1. L'ajout d'

    @After
    public void checkMockito() {
    Mockito.validateMockitoUsage();
    }


    ou

    @RunWith(MockitoJUnitRunner.class)

    ou

    @RunWith(PowerMockRunner.class)

  2. Changement de

    PowerMockito.when(new Boolean(DateUtils.isEqualByDateTime(any(Date.class), any(Date.class)))).thenReturn(false);

  3. À l'aide de anyObject() (cela ne compile pas)

  4. À l'aide de
    notNull(Date.class) ou (Date)notNull()

  5. Remplacer
    when(........).thenReturn(false);

    avec

    Boolean falseBool=new Boolean(false);

    when(.......).thenReturn(falseBool);

  • Sans testable exemple, et de noter les précisions mentionnées ci-dessous en commentaire, je ne pense pas que cette question a suffisamment de détails pour être responsable ou utile pour les futurs lecteurs. Veuillez envisager d'ajouter plus de détails. (Notez que Mockito de rapprochement transporter de l'état, de sorte que vous pouvez obtenir des exceptions semblables simplement en essayant de " sauver comparateur de valeurs pour les variables locales, et Mockito ne vais pas vous dire ce jusqu'à ce qu'un stubbing/appel de vérification beaucoup plus tard. L'affichage de votre code environnant est essentiel de diagnostiquer comparateur de problèmes.)