Junit练习

使用Junit5实现以下SaleMachine类的七个测试方法:
1、如果顾客投入的正好是5角钱,选择“啤酒”,断言“你购买了啤酒,请取饮料”
2、如果啤酒的库存为空,断言“对不起,啤酒库存为空,请取走你的钱”
3、如果顾客投入的正好是5角钱,选择的是这两种之外的其他饮料,断言“输入饮料信息错误!”
4、如果顾客投入1元钱,那么顾客可以在饮料有剩余且有零钱找的情况下得到饮料及找回零钱,断言“你购买了啤酒,请取饮料和找零”
5、如果顾客投入1元钱,但是啤酒已经售完了,那么顾客将拿回自己的钱,得不到啤酒,断言“饮料库存为空,请取回你的硬币”
6、如果顾客投入1元钱,啤酒也有,但是没有零钱找给顾客,那么顾客将拿回自己的钱,得不到饮料,断言“对不起,无法找零,请取走你的钱”
7、如果顾客投入的既不是5角钱,也不是1元钱,断言“硬币输入信息错误!”

public class SaleMachine {
    private int _beerNum, _orangeNum, _count_of_five, _count_of_one;
    private float _total;
    private String[] _type = { "beer", "orange" };
    private String _result;

    public SaleMachine(int beer, int orange, int five, int one) {
        this._beerNum = beer; // 初始化啤酒的库存
        this._orangeNum = orange;// 初始化橙汁的库存
        this._count_of_five = five;// 初始化5角钱的数量
        this._count_of_one = one;// 初始化1元钱的数量
    }

    // type是用户选择的产品,money是用户投币的种类
    public String Operate(String type, int money) {
//        float loose_change=0;
        if (money == 5) {//如果投入5角钱
            if (type.equals(_type[0])) {
                //如果用户选择啤酒
                if (_beerNum >= 1) {
                    //如果还有啤酒
                    _beerNum--;
                    _count_of_five++;
                    _result = "你购买了啤酒,请取饮料";
                    return _result;
                } else
                    return "对不起,啤酒库存为空,请取走你的钱";
            } else if (type.equals(_type[1])) {
                //如果用户选择橙汁
                if (_orangeNum >= 1) {
                    _orangeNum--;
                    _count_of_five++;
                    _result = "你购买了橙汁,请取饮料";
                    return _result;
                } else
                    return "对不起,橙汁库存为空,请取走你的钱";
            } else
                return "输入饮料信息错误!";
        } else if (money == 1) {
            if(_beerNum <=0 || _orangeNum <=0) {
                return "饮料库存为空,请取回你的硬币!";
            }
            //如果用户投入一元钱
            else if (type.equals(_type[0]) && _beerNum >= 1) {
                //如果用户选择啤酒且还有啤酒
                if (_count_of_five >= 1) {
                    //如果有零钱找
                    _beerNum--;
                    _count_of_five--;
                    _count_of_one++;
                    _result = "你购买了啤酒,请取饮料和找零";
                    return _result;
                } else
                    return "对不起,无法找零,请取走你的钱";
            } else if (type.equals(_type[1]) && _orangeNum >= 1) {
                //如果用户选择橙汁且还有橙汁
                if (_count_of_five >= 1) {
                    _orangeNum--;
                    _count_of_five--;
                    _count_of_one++;
                    _result = "你购买了橙汁,请取饮料和找零";
                    return _result;
                } else
                    return "对不起,无法找零,请取走你的钱";
            }
        }

        return "硬币输入信息错误!";

    }

}
package com.atiguitu.java;

import static org.junit.Assert.*;
import org.junit.Test;

public class SaleMachineTest {
	
	@Test
	public void testOne() {
		//1、如果顾客投入的正好是5角钱,选择“啤酒”,断言“你购买了啤酒,请取饮料”
		SaleMachine buy = new SaleMachine(50,50,50,50);
		assertEquals("你购买了啤酒,请取饮料",buy.Operate("beer",5));
	}
	
	@Test
	public void testTwo() {
		//2、如果啤酒的库存为空,断言“对不起,啤酒库存为空,请取走你的钱”
		SaleMachine buy = new SaleMachine(0,50,50,50);
		assertEquals("对不起,啤酒库存为空,请取走你的钱",buy.Operate("beer",5));
	}
	
	@Test
	public void testThree() {
		//3、如果顾客投入的正好是5角钱,选择的是这两种之外的其他饮料,断言“输入饮料信息错误!”
		SaleMachine buy = new SaleMachine(50,50,50,50);
		assertEquals("输入饮料信息错误!",buy.Operate("CocaCoal",5));
	}
	
	@Test
	public void testFour() {
		//4、如果顾客投入1元钱,那么顾客可以在饮料有剩余且有零钱找的情况下得到饮料及找回零钱,断言“你购买了啤酒,请取饮料和找零”
		SaleMachine buy = new SaleMachine(50,50,50,50);
		assertEquals("你购买了啤酒,请取饮料和找零",buy.Operate("beer",1));
	}
	
	@Test
	public void testFive() {
		//5、如果顾客投入1元钱,但是啤酒已经售完了,那么顾客将拿回自己的钱,得不到啤酒,断言“饮料库存为空,请取回你的硬币”
		SaleMachine buy = new SaleMachine(0,50,50,50);
		assertEquals("饮料库存为空,请取回你的硬币!",buy.Operate("beer",1));
	}
	
	@Test
	public void testSix() {
		//6、如果顾客投入1元钱,啤酒也有,但是没有零钱找给顾客,那么顾客将拿回自己的钱,得不到饮料,断言“对不起,无法找零,请取走你的钱”
		SaleMachine buy = new SaleMachine(50,50,0,50);
		assertEquals("对不起,无法找零,请取走你的钱",buy.Operate("beer",1));
	}
	
	@Test
	public void testSeven() {
		//7、如果顾客投入的既不是5角钱,也不是1元钱,断言“硬币输入信息错误!”
		SaleMachine buy = new SaleMachine(50,50,50,50);
		assertEquals("硬币输入信息错误!",buy.Operate("beer",10));
	}
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值