发红包小案例-小白学习中

根据继承的学习,现在进行一个小案例:

//创建一个用户类
public class llid {
public String name;//用户名
public int yuan;//现有金额
public llid(){
}
public llid(String name, int yuan) {
this.name = name;
this.yuan = yuan;
}//构造方法
public void show(){
System.out.println(“用户名:”+name);
System.out.println(“当前余额:”+yuan);
}//展示信息
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getYuan() {
return yuan;
}
public void setYuan(int yuan) {
this.yuan = yuan;
}
}

import java.util.ArrayList;
//创建一个群主类,父类为用户类
public class llquzhu extends llid{
public llquzhu(){
}
public llquzhu(String name,int yuan){
super(name,yuan);
}//构造方法,直接创建起始信息
public ArrayList send(int howyuan,int count){
ArrayList a=new ArrayList<>();//设置一个集合,用来装分配的钱
int yue=super.getYuan();//获得群主金额
if(howyuan>yue) {
System.out.println(“余额不足”);
return a;
}//如果发红包的金额大于群主的余额,则返回“余额不足”的信息
super.setYuan(yue-howyuan);//设置群主当前余额为:以前的余额-发红包的金额
int fen=howyuan/count;//设置每一个红包的平均金额
int yu=howyuan%count;//得到零头
for (int i = 0; i < count-1; i++) {
a.add(fen);//把钱装红包里
}//给红包个数-1个红包每一个都装fen
int last=fen+yu;//给最后一个红包装fen+yu
a.add(last);//把钱装红包里
return a;//返回集合
}//howyuan为红包总金额,count为包几个红包
}

import java.util.ArrayList;
import java.util.Random;
//创建一个群成员类,父类为用户类
public class llchengyuan extends llid{
public llchengyuan(){
}
public llchengyuan(String name,int yuan){
super(name,yuan);
}//构造方法,直接创建起始信息
public void shou(ArrayList a){
int b=new Random().nextInt(a.size());//从0到a.size-1里面随机选一个数b
int money=a.remove(b);//从集合a中获得第b+1个红包
int yuan=super.yuan;//获得群成员金额
super.setYuan(yuan+money);//设置群成员当前余额为:之前的余额+红包中的金额
}
}

import java.util.ArrayList;
//创建一个执行类
public class llhongbao {
public static void main(String[] args) {
llquzhu a=new llquzhu(“群主”,100);
llchengyuan one=new llchengyuan(“成员A”,0);
llchengyuan two=new llchengyuan(“成员B”,0);
llchengyuan three=new llchengyuan(“成员C”,0);
a.show();
one.show();
two.show();
three.show();
ArrayList fa=a.send(20,3);
one.shou(fa);
two.shou(fa);
three.shou(fa);
System.out.println(“发红包后:”);
a.show();
one.show();
two.show();
three.show();
}
}

结果

在设计微信发红包功能的测试用例时,需要从多个角度出发,涵盖功能测试、边界值测试、异常测试、用户体验测试等。以下是针对微信红包功能的测试用例设计示例: ### 功能测试 1. **发送红包** - 输入金额为0.01元,发送成功,金额正确显示[^2]。 - 输入金额为200元,发送成功,金额正确显示。 - 输入金额为负数,系统提示“金额不能为负数”[^2]。 - 输入金额为0元,系统提示“金额不能为零”。 - 输入金额为200.001元,系统提示“金额超过最大限制”[^2]。 2. **领取红包** - 多个用户同时领取一个红包,确保金额分配合理且不会重复领取。 - 用户领取红包后,余额是否正确更新。 - 红包过期后,未领取的金额是否自动退回发送者账户。 ### 边界值测试 1. **最小金额测试** - 输入金额为0.01元,发送成功,金额正确显示。 2. **最大金额测试** - 输入金额为200元,发送成功,金额正确显示。 3. **超出最大金额测试** - 输入金额为200.001元,系统提示“金额超过最大限制”。 ### 异常测试 1. **网络异常** - 发送红包时网络中断,系统提示“网络异常,请重试”。 2. **支付失败** - 用户余额不足,系统提示“余额不足,请充值”。 3. **红包过期** - 设置红包有效期为24小时,24小时后未领取的红包自动退回发送者账户。 ### 用户体验测试 1. **界面布局** - 红包发送界面布局是否清晰,操作是否简单。 2. **提示信息** - 输入金额错误时,系统提示信息是否友好且明确。 3. **操作流畅性** - 发送红包时,操作流程是否顺畅,是否有卡顿现象。 ### 代码示例 以下是一个简单的测试用例设计示例代码,用于验证红包发送功能: ```python def test_send_red_envelope(): # 测试发送红包功能 def send_red_envelope(amount): if amount < 0.01: return "金额不能为负数或零" elif amount > 200: return "金额超过最大限制" else: return "红包发送成功,金额为{:.2f}元".format(amount) # 测试用例 test_cases = [ (0.01, "红包发送成功,金额为0.01元"), (200, "红包发送成功,金额为200.00元"), (-1, "金额不能为负数或零"), (200.001, "金额超过最大限制"), (0, "金额不能为负数或零") ] for amount, expected in test_cases: result = send_red_envelope(amount) assert result == expected, f"Test failed for amount: {amount}. Expected: {expected}, Got: {result}" print("所有测试用例通过") test_send_red_envelope() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值