【发布时间】:2017-07-25 21:26:53
【问题描述】:
我在一个类中有一个函数:
public String covertToLowerCase(String sliceName) {
sliceName = sliceName.trim().toLowerCase();
sliceName = sliceName.replaceAll("\\.txt$|\\.dat$", "");
return sliceName;
}
我想使用 Junit 进行测试。我创建了一个单独的测试文件,其中包含以下内容:
public class MyControllerTest {
private MyController myController;
private static final String SLICE_NAME = "Hello World";
@Test
public void shouldReturnSanitizedString() throws Exception {
String expected = myController.covertToLowerCase(SLICE_NAME);
// assert that actual and expected are same
}
我无法理解如何对此进行测试,并且所有其他示例都特定于它们的功能。我只是想让函数返回一个经过清理的字符串?我该怎么办?
【问题讨论】:
-
“清理”是什么意思,您的正则表达式似乎只是从字符串中删除 txt 或 dat 扩展名。无论如何,你应该有像
String expected = "hello world";这样的东西来进行测试,然后是String actual = myController.covertToLowerCase(SLICE_NAME);,然后是assetEquals(expected, actual)。然后你想在其他不同的输入上以同样的方式测试它,比如:“test.txt”、“test.dat”、“test.doc”、“”、... -
我不明白。为什么要将返回值赋给一个名为
expected的变量?那应该是actual。expected是您真正期望它返回的内容。 -
测试中初始化的字段myController在哪里?如果函数/方法是static,则无需初始化即可使用和测试。
标签: java unit-testing testing junit