【源代码功能】
源代码实现的功能是:判断手机号码的合法性。
代码的 SendVerificationCode 类中包含一个方法:isValid()。
isValid() 方法用来判断 phoneNumber 是否为合法的手机号,逻辑如下:
-
校验 phoneNumber 的长度是否合法;
-
使用正则表达式校验 phoneNumber 是否符合手机号码的通用规则;
-
如果 phoneNumber 的长度合法且符合手机号码通用规则返回 true ,否则返回 false 。
【题目描述】
请使用 基本路径法 为被测源代码 SendVerificationCode 类中的 isValid() 方法设计单元测试用例,并在 SendVerificationCodeTest 类中完成单元测试代码。
package cn.lanqiao;
/**
* 判断手机号码的合法性。规则如下:
* 1. 校验 phoneNumber 的长度是否合法;
* 2. 使用正则表达式校验 phoneNumber 是否符合通用手机号码的规则;
* 3. 如果 phoneNumber 的长度合法且符合通用手机号码规则返回 true ,否则返回 false。
*/
public class SendVerificationCode {
public boolean isValid(String phoneNumber) {
String pattern = "^1[3-9]\\d{9}$";
if (phoneNumber == null || phoneNumber.length() == 0 || phoneNumber.length() != 11) {
return false;
} else if (!phoneNumber.matches(pattern)) {
return false;
} else {
return true;
}
}
}
package cn.lanqiao.unit;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import cn.lanqiao.SendVerificationCode;
/**
* 单元测试
* 1. 请使用 基本路径法 对被测源码 SendVerificationCode 类中的 isValid 方法设计单元测试用例。
* 2. 请在下方 SendVerificationCodeTest 类中填写单元测试代码。
*/
public class SendVerificationCodeTest {
static SendVerificationCode sendCode;
@Before
public void initSendVerificationCodeTest() {
sendCode = new SendVerificationCode();
}
@Test
public void testIsValid01() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码为空
Assert.assertFalse(sendCode.isValid(null));
}
public void testIsValid02() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码长度为0
Assert.assertFalse(sendCode.isValid(""));
}
public void testIsValid03() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码以数字2开头
Assert.assertFalse(sendCode.isValid("232145346"));
}
public void testIsValid04() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码长度为12位
Assert.assertFalse(sendCode.isValid("132145695745"));
}
public void testIsValid05() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码长度有字符
Assert.assertFalse(sendCode.isValid("1321aaa745"));
}
public void testIsValid06() {
// TODO: 请填写 isValid 方法的单元测试代码
// 手机号码长度为11位
Assert.assertTrue(sendCode.isValid("13214569574"));
}
}