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

不同参数试验

寿和通
2023-03-14

我有以下场景要测试。我想知道哪个测试框架最适合我的需求。

这里,将为上述变量分配不同的值,这些变量将被传递给测试20次,每次将生成不同的测试输出文件(总共20个输出文件),然后将与预期的数据文件进行比较。(预期数据也有20个文件。)

我有这样15个场景。哪种测试框架最适合这里?参数化Junit是否合适?请提供一些指导方针,以便使用建议的框架。

共有1个答案

南门野
2023-03-14

通过将Junit参数化测试与一些YAML解析相结合,我能够创建可读的参数表。每个表行都将被解析为一个映射,每个值都将使用yaml解析器进行解析。这样,每个映射都包含类型化实例。甚至像本例一样列出。

@RunWith(Parameterized.class)
public class AnotherParameterizedTest {

    private final HashMap row;

    @Parameterized.Parameters(name="Reverse Lists Tests # {index}:")
    public static List<Map<String, Object>> data() {
        final TestData testData = new TestData(""+
             "|   ID   |       List         |  Expected   |                \n"+
             "|   0    |    [1, 2, 3]       |  [3, 2, 1]  |                \n"+
             "|   1    |    [2, 3, 5]       |  [5, 3, 2]  |                \n"+
             "|   2    |    [5, 6, 7]       |  [ 7, 6, 5] |                \n"
        );
        // parsing each row using simple YAML parser and create map per row
        return testData.getDataTable();
    }

    public AnotherParameterizedTest(HashMap obj) {
        this.row = obj;
    }

    @Test
    public void test() throws Exception {
        List orgListReversed = new ArrayList((List) row.get("List"));
        Collections.reverse(orgListReversed);
        assertEquals((List) row.get("Expected"), orgListReversed);
    }

}

Junit测试结果

 类似资料:
  • 争论严格适用于每个国家。 我不想为所有国家复制粘贴这个场景,我想知道我是否可以有功能/支持文件,这样我就可以取代“巴西”参数,以获得更动态的东西。 也许所有测试都像cucumber一样运行--参数“巴西”

  • B类: 如何影响这个界面?

  • 当我多次调用同一个函数时,每次都传递了不同的参数,我会这样做: 有没有更方便的方法做到这一点呢?

  • 为了自定义,我创建了两个函数,它们具有相同的返回类型和不同的参数,一个是单节点配置,另一个是集群配置。守则如下: 调用它们时,返回值(LettuceConnectionFactory)是另一个函数的参数。守则如下: 但是spring会报告 由于项目稍微复杂一些,所以有很多redis单服务器A、B、C。和集群服务器A、B、C...,它们有不同的ip、端口和池策略。我最初的想法是,通过将RedisCo

  • 我在Java中有两个几乎相同的方法。唯一的区别是它们有不同的参数类型。它们使用泛型并返回输入参数的类型T。我怎样才能摆脱重复的代码?下面是我的两个方法。最后,它们都使用不同的类型调用Spring。否则,方法是相同的。

  • Jenkins想添加一个参数。列表是固定的,但我希望dropbox显示自定义值,而不是实际值(类似于网页的名称,而不是其URL)。 在某些情况下,这是文件,但是,我想显示模块名,而不是完整路径。举个例子: 感谢您的帮助提前!