Unittest avec Mockito - Ignorer l'appel de la méthode

Im struggeling pour en savoir Mockito de unittest une application. Ci-dessous est un exemple de la méthode je suis actuellement en train de tester,

public boolean validateFormula(String formula) {

    boolean validFormula = true;
    double result = 0;

    try {
        result = methodThatCalculatAFormula(formula, 10, 10);
    } catch (Exception e) {
        validFormula = false;
    }

    if (result == 0)
        validFormula = false;
    return validFormula;
}

Cette méthode appelle une autre méthode de la même classe, methodThatCalculatAFormula, que je ne veux pas appeler quand je unittest validateFormula.

Pour tester cela, je voudrais voir comment cette méthode se comporte selon ce methodThatCalculatAFormula retourne. Puisqu'il revient false quand result est 0, et renvoie valide si c'est un nombre quelconque, mais 0 je voudrais simuler ces returnvalues sans courir le réel methodThatCalculatAFormula méthode.

J'ai écrit ce qui suit:

public class FormlaServiceImplTest {
    @Mock
FormulaService formulaService;

@Before
public void beforeTest() {
   MockitoAnnotations.initMocks(this);
}

@Test
public void testValidateFormula() {                 

`//Valid since methodThatCalculatAFormula returns 3`    
when(formulaService.methodThatCalculatAFormula(anyString(),anyDouble(),anyDouble(),anyBoolean())).thenReturn((double)3);        
        assertTrue(formulaService.validateFormula("Valid"));    



//Not valid since methodThatCalculatAFormula returns 0
when(formulaService.methodThatCalculatAFormula(anyString(),anyDouble(),anyDouble(),anyBoolean())).thenReturn((double)0);
    assertFalse(formulaService.validateFormula("Not Valid"));
}

Cependant lorsque j'exécute le code ci-dessus mon assertTrue est false. Im deviner que j'ai fait quelque chose de mal dans ma maquette de l'installation. Comment pourrais-je tester la méthode ci-dessus par la simulation de la valeur de retour de methodThatCalculatAFormula sans réellement en l'appelant.

OriginalL'auteur John Snow | 2013-03-13