举重比赛,需要根据性别和体重来决定是否有参赛资格,具体规则如下:
-
当性别为男且体重大于等于 54 公斤时,可参加男子组比赛,否则无资格参赛。
-
当性别为女且体重大于等于 46 公斤时,可参加女子组比赛,否则无资格参赛。
-
当性别既不是男也不是女时,系统显示性别异常。
题目要求
- 请使用基本路径覆盖法设计 5 条测试用例,使被测代码的基本路径覆盖率达到 100% 。
- 请使用 Java 语言对应的单元测试框架 JUnit 编写测试代码。
- 测试代码请直接在提供的类文件 WeightliftingTest.java 中编写。
- 在测试中用到的断言 Assert 类务必使用 org.junit 包中的 Assert。
- 请不要修改所提供的文件名称,否则将会判 0 分。
调用类
package cn.lanqiao;
/**
* 本类主要功能描述:
* 1、性别既不是男也不是女,则显示性别异常 1(dog,60)= 性别异常
* 2、性别为男,体重大于等于54公斤,显示可参加男子组比赛,否则无资格参赛 2(男,60)= 可参加男子组比赛 , 3(男,50) = 无资格参赛
* 3、性别为女,体重大于等于46公斤,显示可参加女子组比赛,否则无资格参赛 4 (女,60) = 可参加女子组比赛 ,5 (女,40) = 无资格参赛
*/
public class Weightlifting {
/**
* 根据性别和体重确认是否可以参赛
* @param sex 性别
* @param weight 体重
* @return 是否可以参赛
*/
public String divide(String sex, int weight){
String result = null;
if("男".equals(sex)){
if(weight >= 54){
result = "可参加男子组比赛";
} else {
result = "无资格参赛";
}
} else if ("女".equals(sex)){
if(weight >= 46){
result = "可参加女子组比赛";
}else{
result = "无资格参赛";
}
}else{
result = "性别异常";
}
return result;
}
}
测试类
package cn.lanqiao;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* 1. 请使用基本路径覆盖法对被测源代码 Weightlifting 类中的 divide 方法设计 5 条单元测试用例。
* 2. 请在下方 WeightliftingTest 类中填写单元测试代码内容。
* 3. 在测试中用到的断言 Assert 类务必使用 org.junit 包中的 Assert 。
*/
public class WeightliftingTest {
// 声明被测类
private Weightlifting weightlifting;
@Before
public void setUp(){
// 创建被测类对象
weightlifting = new Weightlifting();
}
@After
public void tearDown(){
// 释放被测类对象
weightlifting = null;
}
@Test
public void test01(){
// TODO 请填写单元测试代码
}
}
答案
package cn.lanqiao;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* 1. 请使用基本路径覆盖法对被测源代码 Weightlifting 类中的 divide 方法设计 5 条单元测试用例。
* 2. 请在下方 WeightliftingTest 类中填写单元测试代码内容。
* 3. 在测试中用到的断言 Assert 类务必使用 org.junit 包中的 Assert 。
*/
public class WeightliftingTest {
// 声明被测类
private Weightlifting weightlifting;
@Before
public void setUp(){
// 创建被测类对象
weightlifting = new Weightlifting();
}
@After
public void tearDown(){
// 释放被测类对象
weightlifting = null;
}
@Test
public void test01(){
// TODO 请填写单元测试代码
Assert.assertEquals(weightlifting.divide("dog",60), "性别异常");
Assert.assertEquals(weightlifting.divide("男",60), "可参加男子组比赛");
Assert.assertEquals(weightlifting.divide("男",50), "无资格参赛");
Assert.assertEquals(weightlifting.divide("女",60), "可参加女子组比赛");
Assert.assertEquals(weightlifting.divide("女",40), "无资格参赛");
}
}