不用计算器类,换一个程序
时间: 2023-08-16 11:08:14 浏览: 43
好的,下面是一个简单的Java程序和至少四个JUnit断言进行测试的示例:
```java
public class StringUtils {
public static boolean isPalindrome(String str) {
if (str == null) {
return false;
}
int length = str.length();
for (int i = 0; i < length / 2; i++) {
if (str.charAt(i) != str.charAt(length - i - 1)) {
return false;
}
}
return true;
}
public static String reverse(String str) {
if (str == null) {
return null;
}
return new StringBuilder(str).reverse().toString();
}
public static String capitalize(String str) {
if (str == null) {
return null;
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
public static String[] split(String str, String separator) {
if (str == null || separator == null) {
return null;
}
return str.split(separator);
}
}
```
上面这个程序是一个简单的字符串工具类,其中包含了判断回文串、反转字符串、首字母大写、按指定分隔符分割字符串四个方法。下面是对这个类进行JUnit测试的代码:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class StringUtilsTest {
@Test
public void testIsPalindrome() {
assertTrue(StringUtils.isPalindrome("racecar"));
assertTrue(StringUtils.isPalindrome("level"));
assertFalse(StringUtils.isPalindrome("hello"));
}
@Test
public void testReverse() {
assertEquals("cba", StringUtils.reverse("abc"));
assertNull(StringUtils.reverse(null));
}
@Test
public void testCapitalize() {
assertEquals("Hello", StringUtils.capitalize("hello"));
assertNull(StringUtils.capitalize(null));
}
@Test
public void testSplit() {
assertArrayEquals(new String[] {"a", "b", "c"}, StringUtils.split("a,b,c", ","));
assertNull(StringUtils.split(null, ","));
}
}
```
上面的代码包含了四个测试方法,分别测试了判断回文串、反转字符串、首字母大写、按指定分隔符分割字符串四个方法的正确性。其中,使用了四个断言方法:
* `assertTrue(condition)`:验证条件是否为真;
* `assertFalse(condition)`:验证条件是否为假;
* `assertEquals(expected, actual)`:验证两个数值是否相等;
* `assertArrayEquals(expected, actual)`:验证两个数组是否相等。
这些断言方法可以帮助我们快速、准确地判断程序的正确性。