题目1:
根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足判定覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中startsWith断言判断输出文字结果开头期望结果值和实际返回值是否一致。
被测试代码:
import java.text.MessageFormat;
public class TM10 {
public String tm10(int x, int y) {
double j;
if (x > 60 && y < 35) {
j = 10 * x - y;
return MessageFormat.format("j1={0}",j);
} else {
if (x == 25 && y > 50) {
j =y*Math.log(x+10);
return MessageFormat.format("j3={0}",j);
}else {
j = (x -y) * (Math.pow(10,5)%7);
return MessageFormat.format("j2={0}",j);
}
}
}
}
测试代码:
import org.junit.Test;
import static org.hamcrest.CoreMatchers.startsWith;
import static org.hamcrest.MatcherAssert.assertThat;
public class TM10Test {
private TM10 tm10 = new TM10();
@Test
public void Test01(){
assertThat(tm10.tm10(100,20),startsWith("j1=980"));
}
@Test
public void Test02(){
assertThat(tm10.tm10(25,20),startsWith("j2=25"));
}
@Test
public void Test03(){
assertThat(tm10.tm10(25,100),startsWith("j3=355"));
}
}
题目2:
根据下列流程图编写程序实现相应分析处理并显示结果。返回结果“a=x:”(x为2、3或4);其中变量x、y均须为整型。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断期望结果值和实际返回值是否一致。
被测试代码:
public class TM1 {
public String tm1(int x,int y){
int a = 0;
if ( x>= 80 && y>60){
if (!(x >=90 || y>= 90)){
a = 2;
}
}else if (x <= 70 || y<= 70){
a= 3;
}else {
a = 4;
}
return MessageFormat.format("a={0}",a);
}
}
测试代码:
import org.hamcrest.CoreMatchers;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
public class TM1Test {
private TM1 tm1 = new TM1();
@Test
public void Test01(){
assertThat(tm1.tm1(80,80), CoreMatchers.equalTo("a=2"));
}
@Test
public void Test02(){
assertThat(tm1.tm1(70,70), CoreMatchers.equalTo("a=3"));
}
@Test
public void Test03(){
assertThat(tm1.tm1(75,75), CoreMatchers.equalTo("a=4"));
}
}
题目3:
填写快递单时通常需要确定接收人的姓名、手机号和地址。其中要求手机号是 11 位数字字符,地址为字母开头的 10个(含10)以内字母或字母数字共同组成。填写正确则提示“OK”,否则根据实际情况提示“**不符合要求”(**为手机号或地址),退出。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足判定覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断输出文字期望结果值和实际返回值是否一致。
被测试代码:
public class TM3 {
public String tm3(String phone, String address) {
boolean phoneCheck = phone.matches("[0-9]{11}");
boolean addressCheck = address.matches("^[a-zA-Z][a-zA-Z0-9]{9}");
if (phoneCheck && addressCheck){
return "OK";
}else if (!phoneCheck && addressCheck){
return "手机号不符合要求";
}else if (phoneCheck && !addressCheck){
return "地址不符合要求";
}else {
return "手机号和地址不符合要求";
}
}
}
测试代码:
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
public class TM3Test {
private TM3 tm3 = new TM3();
@Test
public void Test01(){
assertThat(tm3.tm3("13055544446","T123456789"),equalTo("OK"));
}
@Test
public void Test02(){
assertThat(tm3.tm3("1305554444","T123456789"),equalTo("手机号不符合要求"));
}
@Test
public void Test03(){
assertThat(tm3.tm3("13055544446","T12345678"),equalTo("地址不符合要求"));
}
@Test
public void Test04(){
assertThat(tm3.tm3("1305554444","T12345679"),equalTo("手机号和地址不符合要求"));
}
}
题目4:
根据下列流程图编写程序实现相应分析处理并显示结果。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,测试类使用参数化测试(@Parameters)完成测试。使用assertEquals判断输入数据测试方法期望结果值和实际返回值是否一致。
被测试代码:
public class TM8 {
public String tm8(String username,String password){
if (username == null && password == null){
return "用户名或密码不能为空";
} else if (username.equals("admin") && password.equals("123")) {
return "登录成功";
} else if (!username.equals("admin") && password.equals("123")) {
return "请输入正确的用户名";
}else if (username.equals("admin") && !password.equals("123")) {
return "请输入正确的密码";
}else {
return "请输入正确的用户名和密码";
}
}
}
测试代码:
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 TM8Test {
private TM8 tm8 = new TM8();
private String username;
private String password;
private String result;
public TM8Test(String username,String password,String result){
this.username = username;
this.password = password;
this.result = result;
}
@Parameterized.Parameters
public static Collection param(){
return Arrays.asList(new Object[][] {
{null,null,"用户名或密码不能为空"},
{"admin","123","登录成功"},
{"admi","123","请输入正确的用户名"},
{"admin","1234","请输入正确的密码"},
{"adn","125","请输入正确的用户名和密码"},
});
}
@Test
public void Test01(){
assertEquals(tm8.tm8(username,password),result);
}
}
标签:assertThat,String,赛样题,测试,Test,import,public,软件测试
From: https://blog.csdn.net/2301_81199853/article/details/140730657