Ciao a tutto, sto cercando di capire per quale motivo un test di junit mi da un errore che proprio non mi riesco a spiegare!!! posto sotto i vari pezzi di codice
1) codice della classe del test d Junit:
Riporto inoltre che il metodo:codice:package it.polito.po.test; import java.util.List; import elezioni.Candidato; import elezioni.Elezione; import elezioni.TentatoDoppioVoto; import junit.framework.TestCase; public class TestR4_Risultati extends TestCase { Elezione sistema; public void testPreferenzeCandidato() { List<Candidato> esito = sistema.esito(); assertEquals(2,esito.get(0).getPreferenzeDocenti()); assertEquals(0,esito.get(0).getPreferenzeStudenti()); assertEquals(0,esito.get(0).getPreferenzePTA()); assertEquals(2,esito.get(1).getPreferenzeStudenti()); assertEquals(1,esito.get(2).getPreferenzePTA()); } }
List<Candidato> esito = sistema.esito();
è stato testato in precedenza allo stesso identico modo e funziona perfettamente.
2) qui invece riporto parte della classe Candidato:
codice:package elezioni; public class Candidato { private int numero; private String nome; private String cognome; private double voti=0; private int preferenze[] = new int[4]; public Candidato ( String nome, String cognome, int codice ) { this.nome = nome; this.cognome = cognome; this.numero = codice; for ( int i=0; i<4; i++ ) { preferenze[i] = 0; } } public int getPreferenzeDocenti() { return preferenze[Elezione.DOCENTE]; } public int getPreferenzeStudenti(){ return preferenze[Elezione.STUDENTE]; } public int getPreferenzePTA(){ return preferenze[Elezione.PTA]; } }
Nella classe di test si ha un errore in questa riga:
assertEquals(2,esito.get(0).getPreferenzeDocenti() );
ripeto...un ERRORE...non un failure....quindi significa proprio che c'è qualcosa che non va.....inoltre l'errore è:
Vedendo comparire la scritta:codice:java.lang.NoSuchMethodError: elezioni.Candidato.getPreferenzeDocenti()J at it.polito.po.test.TestR4_Risultati.testPreferenzeCandidato(TestR4_Risultati.java:69) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
java.lang.NoSuchMethodError: elezioni.Candidato.getPreferenzeDocenti()
penso che il metodo manca nella classe Candidato....invece....c'è....per quale motivo viene generato st'errore?? non riesco proprio a venirne a capo!
se qualcuno riesce a darmi una mano...grazie!

Rispondi quotando