如何从jUnit测试访问Spring @Service对象
:我有使用@Service注释的服务实现类,可以访问属性文件。
@Service("myService")public class MySystemServiceImpl implements SystemService{
@Resource
private Properties appProperties;
}
属性对象是通过config-file配置的。
<util:properties id="appProperties" location="classpath:application.properties"/>
我想测试此实现的一些方法。
:如何通过测试类访问MySystemServiceImpl-object,从而正确初始化Properties appProperties?
public class MySystemServiceImplTest { //HOW TO INITIALIZE PROPERLY THROUGH SPRING?
MySystemServiceImpl testSubject;
@Test
public void methodToTest(){
Assert.assertNotNull(testSubject.methodToTest());
}
}
我不能简单地创建新的MySystemServiceImpl-
比使用appProperties的方法会抛出NullPointerException。而且我无法直接在对象中插入属性-没有适当的设置方法。
只需在此处输入正确的步骤即可(感谢@NimChimpsky的回答):
我在test / resources目录下复制了 。
我在test / resources目录下复制了 。在应用程序上下文中,我添加了新bean(应用程序属性的定义已经在此处):
<bean id="testSubject" class="com.package.MySystemServiceImpl">
我以这种方式修改了测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={“/applicationContext.xml”})
public class MySystemServiceImplTest {
@Autowired
MySystemServiceImpl testSubject;
}
这很容易-现在在我的测试类中,可以使用功能齐全的对象
回答:
或者,要进行集成测试。
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"/applicationContext-test.xml"})
@Transactional
public class MyTest {
@Resource(name="myService")
public IMyService myService;
然后像往常一样使用该服务。将应用程序上下文添加到您的test / resources目录中
以上是 如何从jUnit测试访问Spring @Service对象 的全部内容, 来源链接: utcz.com/qa/400307.html