Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该为一个只构建并返回数据结构的函数编写单元测试吗?_Java_Unit Testing - Fatal编程技术网

Java 我应该为一个只构建并返回数据结构的函数编写单元测试吗?

Java 我应该为一个只构建并返回数据结构的函数编写单元测试吗?,java,unit-testing,Java,Unit Testing,我有一种做这种事情的方法 class CodeProvider implements Provider { List<String> getCodes() { return List.of("1", "2", "3"); } } 为了有更多的上下文。这个类是提供者层次结构的一部分,它没有比这个更多的逻辑。提供者存在的唯一原因是用作公共外部服务调用的参数。正如评论员所指出的,测试数据是否完全匹配似乎没有什么用处。但是,您可以为这种方法编写其他类型的测试

我有一种做这种事情的方法

class CodeProvider implements Provider {
    List<String> getCodes() {
        return List.of("1", "2", "3");
    }
}

为了有更多的上下文。这个类是提供者层次结构的一部分,它没有比这个更多的逻辑。提供者存在的唯一原因是用作公共外部服务调用的参数。

正如评论员所指出的,测试数据是否完全匹配似乎没有什么用处。但是,您可以为这种方法编写其他类型的测试


(考虑到这是一个简化的示例,并且底层数据可能更复杂:)使用这样的源代码,您的方法将成为底层数据的抽象。可能您的客户机代码将依赖于此数据的某些属性,例如,数据项是有序的,或者它们的基数有一个上限,等等。在
getcode
可能发生变化的情况下,单元测试将有助于获得信心,确保您感兴趣的属性/假设不会随着代码的更改而被违反。

正如评论员所指出的,测试数据是否完全匹配似乎没有多大用处。但是,您可以为这种方法编写其他类型的测试


(考虑到这是一个简化的示例,并且底层数据可能更复杂:)使用这样的源代码,您的方法将成为底层数据的抽象。可能您的客户机代码将依赖于此数据的某些属性,例如,数据项是有序的,或者它们的基数有一个上限,等等。在
getcode
可能发生变化的情况下,单元测试将有助于获得信心,确保您感兴趣的属性/假设不会随着代码的更改而被违反。

简单地说,不。您以这种方式进行测试的原因是什么?还有,是否有任何理由认为它是一种方法?这是一个简化的示例。值得一提的是,在方法代码中断言没有以任何方式转换的数据。如果您没有从测试代码中通过复制和粘贴创建测试,那么您可以验证没有数据输入错误。除此之外,您不应该为该方法编写单元测试,但也许您应该有一个涵盖该方法相关用例的集成测试。要添加到注释中,在这种情况下,您应该测试java库功能(或任何库),即确保
List.of()
按照它所说的做。您通常假设库中的所有代码都已经通过了这种方式的单元测试。简单地说,没有。您用这种方式测试的是什么?还有,这是一个简化的示例。值得一提的是,在方法代码中断言没有以任何方式转换的数据。如果您没有从测试代码中通过复制和粘贴创建测试,那么您可以验证没有数据输入错误。除此之外,您不应该为该方法编写单元测试,但也许您应该有一个涵盖该方法相关用例的集成测试。要添加到注释中,在这种情况下,您应该测试java库功能(或任何库),即确保
List.of()
按照它所说的做。您通常假设库中的所有代码都已经通过了这种方式的单元测试。
@Test
public void test_GetCodes() {
    assertThat(getCodes(), is(of("1", "2", "3")));
}