单元测试用例

代码规范:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    //初始化
    int a,b,c;    
    int num1,num2;
    int num;
    int chufa;
    int k,jiange;
    int zhengchu;
    int j=0;
    int chengfa;
    int con;
    //请输入数的范围,中间用空格隔开:
    cout<<"请输入数的范围,中间用空格隔开:";
    cin>>num1>>num2;
    if(num1>num2)
    {
        cout<<"第一个数应该小于第二个数,请重输:";
        cin>>num1>>num2;
    
    }
    //控制题目的个数,num
    cout<<"其输入要出多少道题目:";
    cin>>num;
    
    if(num>(4*(num2-num1)^2))
    {
        cout<<"您输入的题目数量太多,会造成重复,请重新输入数目:";
        cin>>num;
    }

//打印格式
    cout<<"一行几道题,行间距是几,中间空格:";
    cin>>k>>jiange;
    if(jiange>=5||jiange<0)
    {
        cout<<"您输入的间距太大或为负数,请重输:";
        cin>>jiange;
    }
    
    //是否要除法
    cout<<"是否要除法?是输入1,否输入0:";
    cin>>chufa;
    if(chufa==1)
    {
        cout<<"是否要有余数,是输入1,否输0:";
        cin>>zhengchu;
    }
    
    //是否要乘法
    cout<<"是否要乘法,是输入1,否输入0:";
    cin>>chengfa;

cout<<endl;
    for(int i=0;i<num;i++)
    {    
        cout<<i+1<<"、";        
        a=(rand()%(num2-num1+1))+num1;
        b=(rand()%(num2-num1+1))+num1;
        
        if(chufa==1)
        {
            if(chengfa==1)
            {
                c=rand()%4;//0-3
            }
            else
            {
                c=rand()%3;//0-2
            }
        }
        else
        {
            if(chengfa==1)
            {
                c=rand()%3+1;//1-3
            }
            else
            {
                c=rand()%2+1;//1-2
            }
        }

switch (c)
        {
            case 1:
                cout<<a<<"+"<<b<<"="<<"\t";
                break;
            case 2:
                if(a>b)
                {
                    cout<<a<<"-"<<b<<"="<<"\t";
                }
                else
                {
                    cout<<b<<"-"<<a<<"="<<"\t";
                }
                break;
            case 3:            
                cout<<a<<"*"<<b<<"="<<"\t";
                break;
            case 0://除法
                if(zhengchu==1)//有余数
                {
                    if(b==0)
                    {
                        cout<<b<<"/"<<a<<"="<<"\t";
                    }
                    else
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";    
                    }

}
                else
                {
                    while((j<100000)&&(a!=0)&&(b!=0)&&(a%b==0))
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";
                        j++;
                    }
                    if((a!=0)&&(b!=0)&&(a%b==0))
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";
                        //i++;
                    }
                    else
                    {
                        int j=0;
                        while(j<100000)
                        {
                            a=(rand()%(num2-num1+1))+num1;
                            b=(rand()%(num2-num1+1))+num1;
                            if((a!=0)&&(b!=0)&&(a%b==0))
                            {
                                cout<<a<<"/"<<b<<"="<<"\t";
                                //i++;
                                j=100000;
                                j++;
                            }
                            else
                            {
                                j++;
                            }
                        }
                    }                                
                }
                break;    
        }
        
        
        if((i+1)%k==0)
        {
            cout<<endl;
            for(int m=0;m<jiange;m++)
            {
                cout<<endl;
            }
        }
                
    }
    //继续吗?
    cout<<"继续吗?是输入1,否输入0:"<<endl;
    cin>>con;
    if(con==1)
    {
        cout<<endl;
        main();
    }
    else
    {
        return 0;
    }
    getch();
    return 0;
}

单元测试项目:

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    cout<<"请输入8个数据,分别表示num1,num2,num,k(一行几个),jiange,chufa,yushu,chengfa"<<endl;
    //测试模块
    int a[8];
    for(int n=0;n<8;n++)
    {
        cin>>a[n];
    }

//初始化
    int s,b,c;    
    //int a[0],a[1];
    //int a[2];
    //int a[5];
    //int a[3],a[4];
    //int a[6];
    int j=0;
    //int a[7];
    int con;
    //请输入数的范围,中间用空格隔开:
    //cout<<"请输入数的范围,中间用空格隔开:";
    //cin>>a[0]>>a[1];
    if(a[0]>a[1])
    {
        cout<<"第一个数应该小于第二个数,请重输:";
        cin>>a[0]>>a[1];
    }
    //控制题目的个数,a[2]
    //cout<<"其输入要出多少道题目:";
    //cin>>a[2];
    
    if(a[2]>(4*(a[1]-a[0])^2))
    {
        cout<<"您输入的题目数量太多,会造成重复,请重新输入数目:";
        cin>>a[2];
    }
    else if(a[2]<=0)
    {
        cout<<"请输入大于0的题目数:";
        cin>>a[2];
    }

//打印格式
    //cout<<"一行几道题,行间距是几,中间空格:";
    //cin>>a[3]>>a[4];
    if(a[4]>=5)
    {
        cout<<"您输入的间距太大,请重输:";
        cin>>a[4];
    }
    if(a[4]<0)
    {
        cout<<"您输入的间距为负数,请重输:";
        cin>>a[4];
    }
    //是否要除法
    //cout<<"是否要除法?是输入1,否输入0:";
    //cin>>a[5];

//cout<<"是否要有余数,是输入1,否输0:";
    //cin>>a[6];
    
    
    //是否要乘法
    //cout<<"是否要乘法,是输入1,否输入0:";
    //cin>>a[7];

cout<<endl;
    for(int i=0;i<a[2];i++)
    {    
        cout<<i+1<<"、";        
        s=(rand()%(a[1]-a[0]+1))+a[0];
        b=(rand()%(a[1]-a[0]+1))+a[0];
        
        if(a[5]==1)
        {
            if(a[7]==1)
            {
                c=rand()%4;//0-3
            }
            else
            {
                c=rand()%3;//0-2
            }
        }
        else
        {
            if(a[7]==1)
            {
                c=rand()%3+1;//1-3
            }
            else
            {
                c=rand()%2+1;//1-2
            }
        }

switch (c)
        {
            case 1:
                cout<<s<<"+"<<b<<"="<<"\t";
                break;
            case 2:
                if(s>b)
                {
                    cout<<s<<"-"<<b<<"="<<"\t";
                }
                else
                {
                    cout<<b<<"-"<<s<<"="<<"\t";
                }
                break;
            case 3:            
                cout<<s<<"*"<<b<<"="<<"\t";
                break;
            case 0://除法
                if(a[6]==1)//有余数
                {
                    if(b==0)
                    {
                        cout<<b<<"/"<<s<<"="<<"\t";
                    }
                    else
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";    
                    }

}
                else
                {
                    while((j<100000)&&(s!=0)&&(b!=0)&&(s%b==0))
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";
                        j++;
                    }
                    if((s!=0)&&(b!=0)&&(s%b==0))
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";
                        //i++;
                    }
                    else
                    {
                        int j=0;
                        while(j<100000)
                        {
                            s=(rand()%(a[1]-a[0]+1))+a[0];
                            s=(rand()%(a[1]-a[0]+1))+a[0];
                            if((s!=0)&&(b!=0)&&(s%b==0))
                            {
                                cout<<s<<"/"<<b<<"="<<"\t";
                                //i++;
                                j=100000;
                                j++;
                            }
                            else
                            {
                                j++;
                            }
                        }
                    }                                
                }
                break;    
        }
        
        
        if((i+1)%a[3]==0)
        {
            cout<<endl;
            for(int m=0;m<a[4];m++)
            {
                cout<<endl;
            }
        }
                
    }
    //继续吗?
    cout<<"继续吗?是输入1,否输入0:"<<endl;
    cin>>con;
    if(con==1)
    {
        cout<<endl;
        main();
    }
    else
    {
        return 0;
    }
    getch();
    return 0;
}

1.测试结果是否正确:

有三种情况:(1)数据是:0 900 90 4 0 1 1 1;其意义是显示0-900之间不重复的每行4个间距为0的90道有加减乘除(除法有余数)的四则运算题,结果正确 如截图

(2)数据是:0 900 80 5 1 1 0 1;其意义是显示0-900之间不重复的每行5个间距为1的80道有加减乘除(除法无余数)的四则运算题,结果正确 如截图

(3)数据是:0 900 80 4 0 0 0 0;其意义是显示0-900之间不重复的每行4个间距为0的80道有加减无乘除的四则运算题,结果正确 如截图

2.边界值测试:

(1)数据范围如果前边的数大于后边的数:结果是要求用户充新输入,并提示第一个数应该小于第二个数。如果用户重新输入正确的数,会得到正确的结果;

  题目数量不能超过数据范围,超过会重复;结果要求用户重新输入,并提示应输入一个小点的书。如果用户重新输入正确的数,会得到正确的结果;

  间距不能太大,否则影响做题,不能为负数;结果要求用户重新输入,并提示相关信息。如果用户重新输入正确的输,会得到正确的结果;

  测试结果正确,如下截图:

时间: 2024-11-02 18:34:29

单元测试用例的相关文章

SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

JUnit单元测试用例中使用Spring框架,之前我的使用方式很直接. /** * 用于需要用到Spring的测试用例基类 * * @author lihzh * @alia OneCoder * @blog http://www.coderli.com */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/spring/applicationContext.xml" }) pu

命令行运行Android Robotium自动化用例或单元测试用例

本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动化用例或单元测试用例 1.运行所有的测试用例 举个栗子:运行测试工程下的所有用例 1 adb shell am instrument -w com.taobao.taobao.test/android.test.InstrumentationTestRunner 2.运行单个测试类或某个TestSu

【转】SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

转自:http://www.coderli.com/junit-spring-test-applicationcontext JUnit单元测试用例中使用Spring框架,直接方式如下. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/spring/applicationContext.xml" }) public class SpringTest {} 想要获取Applicat

如何设计单元测试用例

如何编写单元测试用例(白盒测试). 一. 单元测试的概念 单元通俗的说就是指一个实现简单功能的函数.单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出.        测试的覆盖种类        1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次.        2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次.        3.条件覆盖:设计足够的测

如何使用junit4写单元测试用例

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写. 先 简单解释一下什么是Annotation,这个单词一般是翻译成元数据.元数据是什么?元数据就是描述数据的数据.也就是说,这个东西在Java里面可以 用来和public.static等关键字一样来修饰类名.方法名.变量名.修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公 有的一样.想具体了解可以看Core    Java2.废话不多说了,直接进入正题

单元测试===单元测试用例基础!

#coding:utf-8import unittest def div(a,b):    return a/b    #1 / 2 = 1 class MyfristTestCase(unittest.TestCase):    def setUp(self):        print("run!")    def tearDown(self):        print("over!")    def test_sample(self):        pri

2、编写单元测试用例,对用户注册功能的DAO层进行测试。(注意:测试用例应考虑成功和失败的情况)

我先对我做的测试进行说明: 对用户注册功能的DAO层进行测试,其实就是对UserDao中的saveUser(User user) 方法进行测试.我在我的测试方法中同时也用到了UserDao中的exitUser(String username)方法进行了测试.     /** * 测试用户注册(成功) */ @Test public void testUserReg(){ User user= new User(); user.setUsername("3137102332_罗文恺");

以下题目均在bookstore项目上完成(请先运行数据库文件): 1、编写单元测试用例,对用户注册功能的Action层进行测试。(注意:测试用例应考虑成功和失败的情况)

首先,我想说明一下,用户注册时候action中的方法不做任何判断都可以注册,什么都没有考虑,即使全部为空,他都能注册成功.如果还要写测试用例的话,按照我的步骤,在 UserAction中的register()方法中加入一些判断,并在jsp页面中给出相应的提示,由于漏洞实在太多了,我就只写了一个判断——如果用户名为一个空格的时候,注册失败.还有很多测试用例,还有很多漏洞可以测试,我举一个例子:   第一步,在action代码中,将register()方法中加入一个判断: //用户注册,调用serv

Right-BICEP要求设计四则运算2程序的单元测试用例

改动之后代码(部分)其他的未改动 public static void main(String args[]){ Scanner in=new Scanner(System.in); int printnumber=0,boolchengchu=0,boolbrackets=0,mathnumber=0, maxnumber=0,boolnegative=0,boolremainder=0; try { System.out.print("打印数量为(正整数)"); printnumb

hibernate学习:CRUD单元测试用例+知识总结

一:用例 二:总结 主要接口: 1:AnnotationConfiguration 2:SessionFactory 3: Session 知识点: 1: configure可以指定Hibernate文件的路径,如果Hibernate配置文件名称是hibernate.cfg.xml,那么就不用写文件路径 2:factory.openSession();每次调用,都会创建一个新的session 3:factory.getCurrentSession();从上下文获取session,如果有不创建,如