Olhando o erro, parece que o seu método está tentando ler um arquivo .properties. Se for realmente isso, o seu teste está errado, pois testes unitários não devem depender de outros recursos/classes. Para esse caso, use um mock object (aconselho o JMOck).
tebosoftware
Mas é estranho, estou seguindo uma video aula da devmedia e a classe que ele montou le um xml.
só que no que ele mostra na vídeo aula funciona o JUnit.
Um teste que eu fiz numa classe minha de outro projeto, funcionou o teste.
será que tem alguma configuração no junit?
desde já agradeço
Jair_Rillo_Junior
A questão não é que o JUnit não pode ler um XML. Até porque, quem vai ler é o método que você está testando.
A questão é que em um teste unitário, você deve testar apenas a unidade. Caso a unidade use recursos externos ou outras classes, elas devem ser simuladas por um Mock Object.
O erro que está dando deve ser porque a classe não está encontrando o arquivo .properties. Isso é comum, pois quando trabalhamos com sistemas WEB, o caminho para ler o arquivo é diferente do caminho absoluto do mesmo.
Como eu disse… poste o código do método que você está testando e também do seu JUnit
tebosoftware
Segue os arquivos:
Spring.xml
<?xml version="1.0" encoding="ISO-8859-1"?><!-- Document : Spring.xml Created on : 18 de Outubro de 2008, 08:09 Author : Shubacca Description: Purpose of the document follows.--><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"><beans><beanname="hibernate"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"scope="singleton"><propertyname="hibernateProperties"><props><propkey="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</prop><propkey="hibernate.connection.driver_class">org.firebirdsql.jdbg.FBDriver</prop><propkey="hibernate.connection.username">sysdba</prop><propkey="hibernate.connection.password">masterkey</prop><propkey="hibernate.connection.url">jdbc:firebirdsql:localhost/3050:devmedia</prop><propkey="c3p0.acquire_increment">1</prop><propkey="c3p0.idle_test_period">120</prop><propkey="c3p0.max_size">50</prop><propkey="c3p0.max_statements">100</prop><propkey="c3p0.min_size">5</prop><propkey="c3p0.timeout">150</prop></props></property><!-- <property name="mappingResources"> </property> --></bean></beans>
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagedevmedia.srs;importdevmedia.srs.test.Person;importorg.junit.After;importorg.junit.AfterClass;importorg.junit.Before;importorg.junit.BeforeClass;importorg.junit.Test;import staticorg.junit.Assert.*;/** * * @author Shubacca */publicclassSpringAccessTest{publicSpringAccessTest(){}@BeforeClasspublicstaticvoidsetUpClass()throwsException{}@AfterClasspublicstaticvoidtearDownClass()throwsException{}@BeforepublicvoidsetUp(){}@AfterpublicvoidtearDown(){}/** * Test of getSpringContext method, of class SpringAccess. */@TestpublicvoidtestGetSpringContext(){System.out.println("getSpringContext");assertNotNull(SpringAccess.getSpringContext());Personperson1=(Person)SpringAccess.getSpringContext().getBean("person1");assertEquals(person1.getNome(),"Henrique");assertEquals(person1.getCity(),"Belo Horizonte");assertTrue(person1.getAge()==28);}@TestpublicvoidtestGetHibernate(){System.out.println("getHibernate");assertNotNull(SpringAccess.getSessionFactory());}}
dreamspeaker
Olá,
Isso não tem a ver como usar um recurso externo, isso é um erro gerado pelo jUnit task do ANT. Tá lá no seu stack trace…
...
at java.io.FileReader.<init>(FileReader.java:55)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:102
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:817)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1657)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:764)
...
Provavelmente o ANT gera esse arquivo junitvmwatcherXXX.properties em algum lugar e não está conseguindo ler depois. Ou mesmo não está conseguindo gerar. Tenta mudar a versão do ANT, veja se seus classpaths estão em ordem, algo assim.
Se você jogar junitvmwatcher no Google vai achar um monte de gente com o mesmo problema, dá uma fuçada.
São mais de duas da manhã e tô sem sono, maldito horário de verão! :evil: