题目1:
任意输入2个正整数值分别存入x、y中,据此完成下述分析:若x≤0或y≤0,则提示:“输入不符合要求。”;若2值相同,则提示“可以构建圆形或正方形”;若2<|x-y|≤5,则提示“可以构建椭圆”;若|x-y|>5,则提示“可以构建矩形”;若0<|x-y|≤2,提示“可以构建长方形”。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertEquals判断输入数据测试方法期望结果值和实际返回值是否一致。
被测试代码:
public class TM9 {
public String tm9(int x,int y){
if (x <=0 || y<=0 ){
return "输入不符合要求";
}else if (x == y){
return "可以构建圆形或正方形";
}else if (Math.abs(x-y)>2 && Math.abs(x-y)<= 5){
return "可以构建椭圆";
}else if (Math.abs(x-y)<=2 ){
return "可以构建长方形";
}else {
return "可以构建矩形";
}
}
}
测试代码:
import org.junit.Test;
import static junit.framework.TestCase.assertEquals;
public class TM9Test {
private TM9 tm9 = new TM9();
@Test
public void Test01(){
assertEquals(tm9.tm9(0,0),"输入不符合要求");
}
@Test
public void Test02(){
assertEquals(tm9.tm9(1,1),"可以构建圆形或正方形");
}
@Test
public void Test03(){
assertEquals(tm9.tm9(10,1),"可以构建矩形");
}
@Test
public void Test04(){
assertEquals(tm9.tm9(4,2),"可以构建长方形");
}
@Test
public void Test05(){
assertEquals(tm9.tm9(6,3),"可以构建椭圆");
}
}
题目2:
根据输入的年份和月份判断月份的天数。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;不为闰年输出2月份天数。返回结果格式:“year年month月份的天数是days天。”year、month为传入的值,days为判断得到的天数值。其中变量year、month均须为正整数。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断返回期望结果和实际返回是否一致。
被测试代码:
public class TM2 {
public String tm2(int year, int month) {
if (month > 12) {
return "月份输入不正确";
}
int days;
if (month == 2) {
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
days = 29; // 论年
} else {
days = 28; // 非论年
}
} else if (month == 1 | month == 3 | month == 5 | month == 7 | month == 8 | month == 10 | month == 12) {
days = 31; // 大月
} else {
days = 30; // 小月
}
return year + "年" + month + "月份的天数是" + days + "天";
}
}
测试代码:
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
public class TM2Test {
private TM2 tm2 = new TM2();
@Test
public void Test01(){
assertThat(tm2.tm2(2000,2),equalTo("2000年2月份的天数是29天"));
}
@Test
public void Test02(){
assertThat(tm2.tm2(1900,2),equalTo("1900年2月份的天数是28天"));
}
@Test
public void Test03(){
assertThat(tm2.tm2(2004,2),equalTo("2004年2月份的天数是29天"));
}
@Test
public void Test04(){
assertThat(tm2.tm2(2001,2),equalTo("2001年2月份的天数是28天"));
}
@Test
public void Test05(){
assertThat(tm2.tm2(2000,6),equalTo("2000年6月份的天数是30天"));
}
@Test
public void Test06(){
assertThat(tm2.tm2(2000,7),equalTo("2000年7月份的天数是31天"));
}
}
题目3:
邮箱注册需要填写邮箱地址和密码。其中要求邮箱格式“登录名@主机名.域名”,登录名为5个字母,主机名固定为下面2个163、126,域名为com或com.cn。密码为6个(含6)以上数字组成。填写正确则提示“信息正确”,否则根据实际情况提示“**不符合要求”(**为邮箱地址或密码)。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断输出文字期望结果值和实际返回值是否一致。
被测试代码:
public class TM12 {
public String tm12(String email,String password){
boolean emailCheck = email.matches("[a-zA-Z]{5}@(163|126)\\.com(\\.cn)?");
boolean passwordCheck = password.matches("[0-9]{6,}");
if (emailCheck && passwordCheck){
return "信息正确";
}else if (!emailCheck && passwordCheck){
return "邮箱地址不符合要求";
}else if (emailCheck && !passwordCheck){
return "密码不符合要求";
}else {
return "邮箱地址和密码不符合要求";
}
}
}
测试代码:
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
public class TM12Test {
private TM12 tm12 = new TM12();
@Test
public void Test01(){
assertThat(tm12.tm12("[email protected]","1234567"),equalTo("信息正确"));
}
@Test
public void Test02(){
assertThat(tm12.tm12("[email protected]","1234576"),equalTo("邮箱地址不符合要求"));
}
@Test
public void Test03(){
assertThat(tm12.tm12("[email protected]","1237"),equalTo("密码不符合要求"));
}
@Test
public void Test04(){
assertThat(tm12.tm12("abc163.com","1237"),equalTo("邮箱地址和密码不符合要求"));
}
}
题目4:
输入小写的字符串。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,返回文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd为gh并打印出替换后字符串,返回文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出,返回文字“大写字母的字符串为:”和转换后的字符串值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足条件覆盖测试,测试类使用参数化测试(@Parameters)完成测试。使用assertEquals判断期望结果值和实际返回值是否一致。
被测试代码:
public class TM4 {
public String tm4(String str) {
if (str.matches("ab.*")){
return "替换前缀后的字符串为:".concat(str.replaceFirst("ab","ef"));
}else if (str.matches(".*cd")){
return "替换cd后的字符串为:".concat(str.substring(0,str.length()-2)+"gh");
}else {
return "大写字符的字符串是".concat(str.toUpperCase());
}
}
}
测试代码:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static junit.framework.TestCase.assertEquals;
@RunWith(Parameterized.class)
public class TM4Test {
private TM4 tm4 = new TM4();
private String str;
private String result;
public TM4Test(String str,String result){
this.str = str;
this.result = result;
}
@Parameterized.Parameters
public static Collection parm(){
return Arrays.asList(new Object[][]{
{"abcdef","替换前缀后的字符串为:efcdef"},
{"cdcdcd","替换cd后的字符串为:cdcdgh"},
{"wrwr","大写字符的字符串是WRWR"}
});
}
@Test
public void Test01(){
assertEquals(result,tm4.tm4(str));
}
}
标签:assertThat,赛样题,void,equalTo,month,Test,public,软件测试
From: https://blog.csdn.net/2301_81199853/article/details/140681057