首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于测试的测试数据结构,以提高测试可读性

问用于测试的测试数据结构,以提高测试可读性
EN

Stack Overflow用户
提问于 2020-09-24 21:16:08
回答 1查看 156关注 0票数 0

我有一个与测试数据和测试类结构相关的问题。我有一个测试类,里面有几个测试。现在,给定和预期的数据是我为几乎所有测试创建的结构。我把我的测试写成这样:

代码语言:javascript
复制
    private static final List<String> EXPECTED_DATA = List.of("a","b","c","d","e","f");
    @Test
    void shouldReturnAttributes() {
        Service service = new Service();
        List<String> actualData = service.doSomething();

        assertThat(actualData).containsExactlyInAnyOrderElementsOf(TestData.EXPECTED_DATA);
    }

目前,我将测试类开头的测试数据设置为常量。一旦添加了更多的测试,更多的常量开始出现在测试类的开头,导致大量向下滚动以到达实际的测试。因此,一个朋友提出了一个想法,如果常量不在测试类的顶部,测试将更具可读性。从多个测试类中使用的测试数据被移动到CommonTestData类中,而仅从特定类中使用的其余测试数据我们按如下方式组织它们。

我们将它们移动到私有静态类TestData中,代码如下所示:

代码语言:javascript
复制
class ProductAttributeServiceTest {
@Test
    void shouldReturnAttributes() {
        Service service = new Service();
        List<String> actualData = service.doSomething();

        assertThat(actualData).containsExactlyInAnyOrderElementsOf(EXPECTED_DATA);
    }
    
    private static class TestData {
        private static final List<String> EXPECTED_DATA = List.of("a","b","c","d","e","f");
    }
}

你能提出另一种方法吗?您如何组织您的测试数据以提高测试可读性?

EN

回答 1

Stack Overflow用户

发布于 2020-10-23 01:56:43

一种方法是将测试数据放在文本、csv类型的文件中。

将测试数据放入文件中将有机会为具有特定测试场景的文件命名。这最终将为测试数据增加更多的可读性。并且这些文件也可以被安排在基于测试场景的文件夹结构中。

一旦测试数据被安排到文件中,这些文件的所有者、运输和维护就可以转移给领域专家,并且可以根据需要直接添加/修改测试数据。

可以创建一个测试数据提供者类,它将执行从文件中读取测试数据并提供给测试的任务。

所以测试只能通过API与这个supplier类进行通信,

公共string getTestData(string测试场景名称)

如果每个常量的测试数据不是放在单独的文件中那么大的话..则单个基于json yml的配置文件将完成这项工作,其中每个数据常量具有一个字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64047294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档