JUnit et méthodes setUp() et tearDown()
Bonjour,
J'ai un petit soucis avec les méthodes setUp() et tearDown() de Junit.
En effet, je voulais plutot pour une classe de test donnée, effectuer un certain traitement au début et à la fin de tous les tests.
J'ai donc utilisé les classes Test et TestSuite de JUnit, comme cela (en reportant le contenu de mes anciennes méthodes setUp et tearDown) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| package com.pv.document.rules.util;
import java.util.Map;
import com.pv.document.rules.common.JUnitUtil;
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
*
* This class is a JUnit test class for XPathUtil
*/
public class XPathUtilTest extends TestCase {
/**
* Logguer for MapUtilTest Class
*/
// private static final Logger LOGGER = Logger.getLogger(XPathUtilTest.class);
/**
* Content of xml Message
*/
private static String payload;
/**
* Map used with XSL transformation
*/
private static Map<String, Object> xslParametersMap;
/**
* @return Test
*/
public static Test suite() {
TestSetup setup = new TestSetup(new TestSuite(XPathUtilTest.class)) {
protected void setUp() {
// code execute une seule fois avant l'exécution de tous les cas de tests
JUnitUtil junitUtil = JUnitUtil.getInstance();
junitUtil.setUp();
payload = junitUtil.getPayload();
xslParametersMap = junitUtil.getXslParametersMap();
}
protected void tearDown() throws Exception {
// code execute une seule fois après l'exécution de tous les cas de tests
payload = null;
xslParametersMap = null;
}
};
return setup;
}
/**
* test method for the method xpathEquals of XPathUtil class
*/
public void testXPathEquals() {
assertFalse(XPathUtil.xpathEquals(payload, "//xft:Document/@xsi:type", "DocType1"));
assertTrue(XPathUtil.xpathEquals(payload, "//xft:Document/@xsi:type", "DocType2"));
}
/**
* @param args : main args
*/
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
} |
Si j'exécute unitairement une classe de test Junit dans eclipse tout est nikel, et j'ai le même comportement qu'avant.
Par contre, si je lui dis d'exécuter l'ensemble des tests, j'ai plein d'erreurs et je vois par exemple en débuguant lors de l'exécution de la méthode testXPathEquals que mon attribut statique de classe payload est nul, autrement dit, celui-ci n'est pas initialisé par la méthode suite() de la classe statique Test.
Une petite idée?
Merci :-)