[Python] invocare super.setup automaticamente
Piergiuliano Bossi
pgbossi a gmail.com
Ven 8 Nov 2013 17:00:21 CET
2013/11/8 Manlio Perillo <manlio.perillo a gmail.com>
>
>
> Allora no, che io sappia nose ed PyUnit non si comportano come le nuove
> versioni di JUnit.
>
>
Capito.
> Puoi postare un esempio di come si fa in JUnit?
>
Ecco qua.
******** SuperTest.java ********
import org.junit.Before;
import org.junit.Test;
public abstract class SuperTest {
@Before public void init() throws Exception {
System.out.println("I'm a Super init");
}
@Before public void anotherInit() throws Exception {
System.out.println("I'm another Super init");
}
@Test public void just_a_test() throws Exception {
System.out.println("Just a test in the superclass");
}
@Test public void yet_another_test() throws Exception {
System.out.println("Yet another test in the superclass");
}
}
******** Subest.java ********
import org.junit.Before;
import org.junit.Test;
public class SubTest extends SuperTest {
@Before public void subInit() throws Exception {
System.out.println("I'm a Sub init");
}
@Before public void anotherSubInit() throws Exception {
System.out.println("I'm another Sub init");
}
@Test public void more_testing() throws Exception {
System.out.println("more testing in the subclass");
}
@Test public void little_more_testing() throws Exception {
System.out.println("little more testing in the subclass");
}
}
******** stdout dell'esecuzione ********
I'm another Super init
I'm a Super init
I'm another Sub init
I'm a Sub init
more testing in the subclass
I'm another Super init
I'm a Super init
I'm another Sub init
I'm a Sub init
little more testing in the subclass
I'm another Super init
I'm a Super init
I'm another Sub init
I'm a Sub init
Just a test in the superclass
I'm another Super init
I'm a Super init
I'm another Sub init
I'm a Sub init
Yet another test in the superclass
Notare che:
- Non sei costretto ad avere una superclasse astratta, e' solo comune
fare cosi' (non mi dilungo a spiegare perche', non sarebbe OT)
- L'ordine di esecuzione dei @Before di una classe e' indeterminato, ma
l'ordine tra classi e' determinato
- Le teardown si comportano alla stessa maniera al contrario (cioe'
prima le sottoclassi e poi le superclassi, l'annotazione per loro e'
ovviamente @After)
Ciao
Giuliano
--
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131108/853d5850/attachment.html>
Maggiori informazioni sulla lista
Python