当前位置: 首页 > 知识库问答 >
问题:

从单元测试指定一个Spring bean xml文件

徐文斌
2023-03-14

我正在学习Spring,正在进行单元测试,bean在XML配置文件中指定。我想知道我是如何告诉它在文件系统中使用文件的。

将运行以下代码*:

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("beans.xml")
public class CDPlayerTest {
    ...
}

豆子。xml文件与测试类位于同一个包中。

但是在使用的时候

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/Users/pabernathy/pworkspace/springtraining/beans.xml")
public class CDPlayerTest {
    ...
}

它给了我这个错误信息:

组织。springframework。豆。工厂BeanDefinitionStoreException:IOException解析来自类路径资源[Users/pabernathy/pworkspace/springtraining/beans.XML]的XML文档;嵌套的例外是java。伊奥。FileNotFoundException:无法打开类路径资源[Users/pabernathy/pworkspace/springtraining/beans.xml],因为它不存在

我可以向你保证,文件确实存在。

有人知道如何为Springbeans指定任意XML文件吗?

*基于《Spring在行动》第二章中的例子

共有2个答案

鲜于承基
2023-03-14

试着这样注释

如果不起作用,只需将整个路径指定为@ContextConfiguration(位置={文件://用户/blah/blah/beans.xml),你应该很好。

罗毅
2023-03-14

如果仔细查看错误消息,就会发现spring删除了文件路径上的前导斜杠。默认情况下,spring假定该文件存在于类路径的某个位置。试试这个:

@ContextConfiguration("file:/Users/pabernathy/pworkspace/springtraining/beans.xml")

文件:覆盖默认的spring行为,并通知spring它是一个绝对路径。

 类似资料:
  • 为了让单元测试跑一个批处理的任务,这个框架必须加载这个任务的ApplicationContext,两个注解的触发方式: @RunWith(SpringJUnit4ClassRunner.class):表明这个类需要使用Spring的测试工具 @ContextConfiguration(locations = {…}):表明哪些xml文件包含ApplicationContext @RunWith

  • 我正在尝试用解析XML中不同元素的特定方法编写一些单元测试。但是我在单元测试中解析“测试”xml文件时遇到了一些问题。 我的问题并不是与XML/XSD文件有关,而是关于如何在单元测试中正确解析它们。 这是我到目前为止的代码: 即使我在实现方法中以同样的方式进行解析,我也会得到以下错误: 错误:读取文件“dir/testxsd.xsd”时出错:无法加载外部实体“dir/testxsd.xsd” 我尝

  • 我不熟悉Scala中的单元测试,我找不到一种方法来存根单例对象中定义的函数。 例如: 我试图对Profile类中定义的函数进行单元测试。因为我不想在单元测试中通过web实际访问外部API,所以我尝试存根对象及其函数以返回一些预定义的值。 我研究了ScalaMock、EasyMock和Mockito框架,但找不到一种方法来存根单例对象的方法。ScalaMock状态 为什么所有的模拟框架都不提供这种功

  • FuelPHP 以自动测试的想法建成,并且基于 PHPUnit 测试框架来包含测试和测试类别。 单元测试是什幺? 单元测试是被写来确保程式码单元(通常是一个函式或方法)是否有执行它原设计行为的自动测试。 这些测试也帮助开发者确保他们对系统所作的任何变更,不会破坏原有运作中的任何东西。 单元测试也是测试驱动开发(TDD)学问的关键原动力。 PHPUnit 你将需要本地安装的 PHPUnit,如果你想

  • 对于复杂的批处理任务,测试用例在点对点的测试方法中可能变成难于管理的。这些情况下,凭你们自己的力量用测试用例测试各个步骤更加有用。AbstractJobTests类包含一个方法launchStep需要一个步骤名称和运行特定的步骤。这个方法允许更有针对性的测试通过这个步骤允许测试设置数据并验证其结果。 JobExecution jobExecution = jobLauncherTestUtils.

  • 问题内容: 我最近正在研究的程序中的一个常见任务是以某种方式修改文本文件。(嘿,我在Linux上。所有内容都是一个文件。我进行大规模的系统管理。) 但是代码修改的文件可能不存在于我的桌面盒中。而且,如果它在我的桌面上,我可能不想修改它。 我已经了解了Dive Into Python中的单元测试,并且很清楚我在测试将十进制转换为罗马数字的应用程序时想要做的事情(DintoP中的示例)。测试是完全独立