gpt4 book ai didi

java - Spring 单元测试 - 为不同的单元测试加载不同的配置文件

转载 作者:行者123 更新时间:2023-12-01 13:32:17 25 4
gpt4 key购买 nike

我有一个类 (ConfigurationReaderUtil),它将 XML 配置文件加载到 beans(使用 simpleframework)。还有另一个类(我们将其命名为 XXX 类),它使用由 ConfigurationReaderUtil 加载的 bean。
我想测试XXX类。当 XML 配置文件中存在无效数据时,测试错误情况非常重要。所以目前我在 src/test/resource 中有一个 XML 文件,可以用来测试成功的案例。我还需要 src/test/resource 中更多的 XML 文件来测试错误的情况。
但是我在 ConfigurationReaderUtil 中有类似的东西:

InputStream in = new ClassPathResource(Constants.PATH_TEMPLATE_CONFIG_XML).getInputStream();
templatesBean = serializer.read(TemplatesBean.class, in);

所以我需要为不同的单元测试加载不同的 XML 文件。我真的不知道如何才能实现这一目标。我可以在单元测试中以某种方式定义我需要哪个测试 XML 文件吗?但是在这种情况下,我应该如何编写 ConfigurationReaderUtil 类?
嗯,这就是困境......
谢谢,五、

最佳答案

你做错了。您的 XXX 类不处理 XML 解析。它处理由另一个类从 XML 资源读取的 bean。因此,XXX 的单元测试不应使用 XML 文件作为输入,而应使用通常由其他类创建的 bean 实例,但您应该在 XXX 的单元测试中手动创建该实例:

@Test
public void testWithInvalidInput() {
SomeBean invalid = new SomeBean();
invalid.setValue("invalidValue");
XXX xxx = new XXX();
xxx.doSomeWork(invalid);
// now check that doSomeWork does the right thing
}

关于java - Spring 单元测试 - 为不同的单元测试加载不同的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com