gpt4 book ai didi

java - 使用 Junit 对边缘情况进行单元测试

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:54 25 4
gpt4 key购买 nike

我有一个名为 StringProcessor 的实用程序类。其中的 breakLongWords() 方法会在字符序列缺少预定义长度的空白时向输入添加零宽度空格:

public class StringProcessor {

private static final int WORD_MAX_LENGTH = 40;

public String breakLongWords(CharSequence input) {
// add a zero-width space character after a word
// if its length is greater than WORD_MAX_LENGTH and doesn't have any space in it
}
}

静态字段 WORD_MAX_LENGTH 是一个实现细节,不应暴露给其他类(包括测试类)。

现在,如何在不访问 WORD_MAX_LENGTH 的情况下测试 JUnit 中的边缘情况?例如:

@Test
public void breakLongWords_EdgeCase() {
String brokenText = stringProcessor.breakLongWords
("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); // its length should be = WORD_MAX_LENGTH

assertEquals(41, brokenText.length()); // 41 (WORD_MAX_LENGTH + 1) is also hard-coded here
}

最佳答案

通常这样的字段是“包私有(private)的”(即没有访问修饰符)并且单元测试放在同一个包中。
因此常量对于同一包中的测试和类是可见的,而对于其他人是隐藏的。

关于java - 使用 Junit 对边缘情况进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51938401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com