gpt4 book ai didi

java - Junit 测试用例

转载 作者:行者123 更新时间:2023-12-01 15:32:25 24 4
gpt4 key购买 nike

您好,我是编写 JUnit 测试用例的新手。有人可以帮我用这个方法吗?

private boolean validateDate(Date date, String datesInCsv) {
boolean dateAlreadyExist= false;
final String[] dateVal = datesInCsv.split(",");
List<Date> allDates = new ArrayList<Date>();


for (final String stringDate : dateVal ) {
allDates .add(DateUtil.parseDate(stringDate ,"MM/dd/yyyy"));
}
if (allDates .contains(date)) {
dateAlreadyExist= true;
}
return dateAlreadyExist;
}

在为此类方法编写测试用例之前如何开始以及应记住什么?

最佳答案

测试纯粹主义者会回答“如何开始”,说从测试开始,而不是从实现开始。但你已经过了那个阶段,因为你已经有了自己的方法。

cjstheno 是正确的,测试私有(private)方法,嗯,很奇怪。

所以我通常从围绕错误输入的测试开始

@Test(expected = IllegalArgumentException.class)
public void nullDateIsBadInput() {
yourclass.validateDate(null, "01/01/2000");
}

然后我测试该方法的主旨

@Test
public void janFirstIsInInput() {
Assert.assertTrue("janFirst is in inuputs",
yourclass.validateDate(janFirst, "01/01/2000, 01/02/2000");
}

@Test
public void janFirstIsNotInInput() {
Assert.assertFalse("janFirst is not in inputs",
yourclass.validateDate(janFirst, "04/01/2000, 01/02/2000");
}

不要忘记将可选消息放入断言调用中,这样稍后您返回代码时会更容易。

最后,一旦你的测试工作正常,不要忘记重构你的代码(和你的测试!),例如返回 allDates .contains(date) 的值,而不是将其存储在冗余变量中。

关于java - Junit 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9419613/

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