Junit test pour un booléen
J'ai un problème d'écriture d'un cas de test de cette méthode ci-dessous: EvenNum(double)
public class OddEven {
/**
* @param args
*/
public boolean evenNum(double num)
{
if(num%2 == 0)
{
System.out.print(true);
return true;
}
else
{
System.out.print(false);
return false;
}
}
C'est le cas de test que j'ai écrit, mais je pense que j'ai un héritage problème ou un problème de logique dans ce cas de test. Devrait être très simple, mais ne peut pas comprendre. Voici le code que j'ai écrit:
import static org.junit.Assert.*;
import org.junit.Test;
public class OddEvenTest {
@Test
public void testEvenNum() {
boolean ans = true;
boolean val;
double num= 6;
val = OddEven.EvenNum(num) //cant inherit the method dont know why???
assertEquals(ans,val);
}
}
OriginalL'auteur Splitter | 2011-05-25
Vous devez vous connecter pour publier un commentaire.
Deux choses :
Vous êtes en invoquant un non méthode statique statique. La méthode doit être déclarée statique:
public statique boolean evenNum(double num) {
}
Vous n'avez pas de taper le nom de la méthode correctement. Regardez de plus près. Également envisager de renommer quelque chose de plus lisible comme,
isEven(...)
OriginalL'auteur Amir Afghani
Vous avez un certain nombre de questions:
J'ai corrigé certaines choses pour vous et juste vérifié le code ci-dessous:
OddEven.java:
OddEvenTest.java
En supposant que les appels à
System.out.println()
dansOddEven
est strictement à des fins de débogage, tout cela pourrait être effondré vers le bas:OddEven.java
OddEvenTest.java
Le code est maintenant plus courte et l'unité de test même couvre un cas particulier, pour faire bonne mesure.
Afghani: le
oddEven()
méthode pourrait certainement être statique ici et il est donc peut-être une chose sensée à faire. Mais idéalement, nous aimerions obtenir un passage de test de l'unité à la place de avant refactoring. J'ai donc écrit le test de l'unité contre laOddEven
classe tel que présenté. Une fois il y a un passage de test de l'unité, nous pouvons refactoriser. En outre, il existe une école de pensée parmi les tests unitaires des fanatiques qui dit que toutes les choses statiques sont le mal. Google le sujet et vous pouvez en savoir plus. Aussi, ne laissez pas une personne représentant du vous tromper. N'importe qui peut être tort à propos de quelque chose, peu importe ce que leurs rep. 🙂OriginalL'auteur Asaph
Il semble que les tests devenu fou de moi, et de la programmation devenu fou. Toute la méthode n'est d'évaluer num % 2 == 0. Vous pouvez tout aussi bien le code que partout nécessaires et de les jeter à la fois la méthode et de ses tests. Si vous devez garder la méthode, il s'appuie sur un modèle mathématique d'identité, vous n'avez pas besoin de les tester. Vous pouvez ainsi tester 1+1==2.
OriginalL'auteur user207421