用spring4做个单元测试,报failed to load applicationContext
代码如下:
1.接口
package com.springinaction.test;
public interface CompactDisc {
public void play();
}
2.实现类
package com.springinaction.test;
import org.springframework.stereotype.Component;
@Component
public class SgtPeppers implements CompactDisc{
private String title = "Sgt. Pepper's Linel Hearts Cloub Band";
private String artist = "The Beatles";
@Override
public void play() {
System.out.println("Playing " + title + " by " + artist);
}
}
3.配置类(注解组件扫描):@ComponentScan注解,这个注解能够在Spring中启动组件扫描,默认会扫描与配置类相同的包
package com.springinaction.test;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
public class CDPlayerConfig {
}
4.测试类
package com.springinaction.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfig.class)
//@ContextConfiguration(locations={"classpath:NewFile.xml"})这里是xml启动组件扫描,因为我们用的是注解扫描,所以注释
public class CDPlayerTest {
@Autowired
private CompactDisc cd;
@Test
public void cdShouldNotbeNull(){
assertNotNull(cd);
}
}
原因是缺少Spring的jar包,在
http://repo.spring.io/release/org/springframework/spring
中下载了spring-framework-4.2.0.RELEASE-dist.zip,解压完后把包都导了进入,就ok了