I'm trying to test the service of my spring mvc app using JUNIt. I 'm using maven and hibernate. I get Failed to load ApplicationContext, i don't know if there is a specific place to put my test class, i'm using only java config. here is my test class
import com.ardia.projet.config.AppConfig;
import com.ardia.projet.entities.User;
import com.ardia.projet.services.UserService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=AppConfig.class)
@ComponentScan(basePackages={"com.ardia.projet"})
public class UserServiceTest
{
@Autowired
private UserService userService;
@Test
public void findAllUsers() {
List<User> users = userService.findAll();
assertNotNull(users);
assertTrue(!users.isEmpty());
}
@Test
public void findUserById() {
User user = userService.findUserById(16);
// System.out.println("nom="+user.getNom());
assertNotNull(user);
}
@Test
public void createUser() {
User user=new User();
user.setCin(476);
user.setLogin("loginUser");
user.setNom("testUser");
User savedUser = userService.create(user);
User newUser = userService.findUserById(savedUser.getIdUser());
assertEquals("testUser", newUser.getNom());
}
}
and here is my AppConfig class
@Configuration
@ComponentScan(basePackages={"com.ardia.projet"},
excludeFilters=@ComponentScan.Filter(type=FilterType.REGEX, pattern={"com.ardia.projet.web.*"}))
@PropertySource(value = { "classpath:application.properties" })
@EnableScheduling
@EnableAspectJAutoProxy
@EnableCaching
public class AppConfig {
@Autowired
private Environment env;
@Bean
public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer()
{
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public CacheManager cacheManager()
{
return new ConcurrentMapCacheManager();
}
}
and this is my PersistenceConfig class
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages="com.ardia.projet.repositories")
public class PersistenceConfig {
@Bean(name = "transactionManager")
public PlatformTransactionManager annotationDrivenTransactionManager() {
System.out.println("PlatformTransactionManager");
return new JpaTransactionManager();
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory()
{ System.out.println("LocalContainerEntityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setDataSource(dataSource());
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.ardia.projet.entities");
Properties jpaProperties = new Properties();
//jpaProperties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
factory.setJpaProperties(jpaProperties);
factory.afterPropertiesSet();
factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
return factory;
}
@Bean
public HibernateExceptionTranslator hibernateExceptionTranslator()
{
return new HibernateExceptionTranslator();
}
@Bean
public DataSource dataSource()
{
final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
dsLookup.setResourceRef(true);
System.out.println("dataSource()");
DataSource dataSource = dsLookup.getDataSource("jdbc/test1");
return dataSource;
}
}
thank u for ur help
Aucun commentaire:
Enregistrer un commentaire