加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使资源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.
我想知道是否有简单的方法来读取xml并使用相同的结构,但是从我的测试中传递这些值.

<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....
}
}

使用这种测试运行方法的优点是您有一个简单的输入列表供测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读