使资源xml可配置,同时在java中进行测试?
发布时间:2020-12-16 22:53:01 所属栏目:百科 来源:网络整理
导读:我必须测试100多个不同的情况,每一个我都需要外部xml来读取和解析. 我用: String xml = IOUtils.toString( this.getClass().getResourceAsStream(path),encoding); 例如我的测试xml: container xmlns:dmc="http://example.com/common" object id="1369" ch
我必须测试100多个不同的情况,每一个我都需要外部xml来读取和解析.
我用: String xml = IOUtils.toString( this.getClass().getResourceAsStream(path),encoding); 例如我的测试xml: <container xmlns:dmc="http://example.com/common"> <object id="1369" checkedParamter="in" class="Class1"> ... </object> </container> 但我必须测试带有缺少id的ivalid id和现有id.然后我需要checkedParamter有3-4个值并将所有组合与id属性组合.对于每个测试,我现在创建新的xml,唯一的区别是这两个属性id和checkedParamter. <container xmlns:dmc=" http://example.com/common"> <object id= ${valueId} checkedParamter=${valueChechedParamter} class="Class1"> ... </object> </container> 然后我将使用一个xml并将期望值放在测试开始时.我不是技术或方法吗? 解决方法
最好的方法是使用${valueId}的单独文件,就像你已经拥有的那样.
我们将使用JUnit的以下功能来实现我们的目标: > Parameterized tests – 用于输入数据的简单列表 我们将以下文件存储到项目的资源部分: <container xmlns:dmc=" http://example.com/common"> <object id= ${valueId} checkedParamter=${valueChechedParamter} class="Class1"> ... </object> </container> 然后我们开始测试: @RunWith(Parameterized.class) public class XmlInputTest { @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { { 1369,"in" },{ 1369,"out" },{ 753,// etc.... }); } @Parameter(value = 0) public int id; @Parameter(value = 1) public String checkedParamter; @Test public void mainTest() { String xml = IOUtils.toString( this.getClass().getResourceAsStream("template.xml"),encoding); xml = xml.replace("${valueId}",String.valueOf(id)).replace("${valueChechedParamter}",checkedParamter); // remaing test.... } } 使用这种测试运行方法的优点是您有一个简单的输入列表供测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |