zoukankan      html  css  js  c++  java
  • 作业5 测试与封装 四则运算

        

    一、一开始打开这个作业《测试与封装》的内容的时候,我都理解不了这个作业要如何操作,后来雪意发现了一个关于进行单元测试的网址:http://tips1000.com/archives/189.html,后来一边操作一边和雪意讨论,原来就是把自己原本的四则运算代码进行封装,在一个类里面运用多个方法,询问如果封装都要进行如此大的改动,那么单元测试不就很不简单了,老师说以后编写程序可以采取一个类里面多种方法,然后方便程序的封装与测试。我把我之前的四则运算程序改成了Calculator类里有四种方法(根据代码里用运算符分类来分出四种方法):public static void Onefhnum(int a,int b,int e)//一个运算符的方法、public static void Twofhnum(int a,int b,int c,int e,int h)//两个运算符的方法、public static void Threefhnum(int a,int b,int c,int d,int e,int h,int f)//三个运算符的方法、public static int getAnswer()//返回运算答案,然后在CalculatorTest类里加入数值来测试代码有无错误。

    Calculator.java(封装)代码如下:

    public class Calculator {
    	static int answer;
    	static char[]fh={'+','-','*','/'};
    	static char fh2;
    	static char fh3;
    	static char fh4;
    	static int a,b,c,d,e,h,f;
    	static int fhnum;//符号数
    	public static void Onefhnum(int a,int b,int e){//一个运算符的方法
    		fh2=fh[e];  
            if(fh2=='+'){
                answer=a+b;
            }
            if(fh2=='-'){
                answer=a-b;
            }
            
            if(fh2=='*'){
                answer=a*b;
            }
            if(fh2=='/'){
                answer=a/b;
            }
            	
    	}
    	public static void Twofhnum(int a,int b,int c,int e,int h){//两个运算符的方法
    		fh2=fh[e];
    		fh3=fh[h];
    		if(fh2=='+')
            {
            if(fh3=='+'){
                answer=a+b+c;
            }
            if(fh3=='-'){
                answer=a+b-c;
            }
            
            if(fh3=='*'){
                answer=a+b*c;
            }
            if(fh3=='/'){
                answer=a+b/c;
            }
        }
            if(fh2=='-')
            {
            if(fh3=='+'){
                answer=a-b+c;
            }
            if(fh3=='-'){
                answer=a-b-c;
            }
            
            if(fh3=='*'){
                answer=a-b*c;
            }
            if(fh3=='/'){
                answer=a-b/c;
            }        
        }
        
        if(fh2=='*')
        {
            if(fh3=='+'){
                answer=a*b+c;
            }
            if(fh3=='-'){
                answer=a*b-c;
            }
            
            if(fh3=='*'){
                answer=a*b*c;
            }
            if(fh3=='/'){
                answer=a*b/c;
            }
        }
        if(fh2=='/')
        {
            if(fh3=='+'){
                answer=a/b+c;
            }
            if(fh3=='-'){
                answer=a/b-c;
            }
            
            if(fh3=='*'){
                answer=a/b*c;
            }
            if(fh3=='/'){
                answer=a-b/c;
            }
        }
    	}
    	public static void Threefhnum(int a,int b,int c,int d,int e,int h,int f){//三个运算符的方法
    		fh2=fh[e];
    		fh3=fh[h];
    		fh4=fh[f];
    		if(fh2=='+')//第一为加
            {
                if(fh3=='+')
                {
                    if(fh4=='+')
                    {answer=a+b+c+d;}
                    if(fh4=='-')
                    {answer=a+b+c-d;}
                    if(fh4=='*')
                    {answer=a+b+c*d;}
                    if(fh4=='/')
                    {answer=a+b+c/d;}
                    
                }
                if(fh3=='-')
                {
                    if(fh4=='+')
                    {answer=a+b-c+d;}
                    if(fh4=='-')
                    {answer=a+b-c-d;}
                    if(fh4=='*')
                    {answer=a+b-c*d;}
                    if(fh4=='/')
                    {answer=a+b-c/d;}
                    
                }
                if(fh3=='*')
                {
                    if(fh4=='+')
                    {answer=a+b*c+d;}
                    if(fh4=='-')
                    {answer=a+b*c-d;}
                    if(fh4=='*')
                    {answer=a+b*c*d;}
                    if(fh4=='/')
                    {answer=a+b*c/d;}
                    
                }
                if(fh3=='/')
                {
                    if(fh4=='+')
                    {answer=a+b/c+d;}
                    if(fh4=='-')
                    {answer=a+b/c-d;}
                    if(fh4=='*')
                    {answer=a+b/c*d;}
                    if(fh4=='/')
                    {answer=a+b/c/d;}
                    
                }
            }
            
            
            if(fh2=='-')//第一为减
            {
                if(fh3=='+')
                {
                    if(fh4=='+')
                    {answer=a-b+c+d;}
                    if(fh4=='-')
                    {answer=a-b+c-d;}
                    if(fh4=='*')
                    {answer=a-b+c*d;}
                    if(fh4=='/')
                    {answer=a-b+c/d;}
                    
                }
                if(fh3=='-')
                {
                    if(fh4=='+')
                    {answer=a-b-c+d;}
                    if(fh4=='-')
                    {answer=a-b-c-d;}
                    if(fh4=='*')
                    {answer=a-b-c*d;}
                    if(fh4=='/')
                    {answer=a-b-c/d;}
                    
                }
                if(fh3=='*')
                {
                    if(fh4=='+')
                    {answer=a-b*c+d;}
                    if(fh4=='-')
                    {answer=a-b*c-d;}
                    if(fh4=='*')
                    {answer=a-b*c*d;}
                    if(fh4=='/')
                    {answer=a-b*c/d;}
                    
                }
                if(fh3=='/')
                {
                    if(fh4=='+')
                    {answer=a-b/c+d;}
                    if(fh4=='-')
                    {answer=a-b/c-d;}
                    if(fh4=='*')
                    {answer=a-b/c*d;}
                    if(fh4=='/')
                    {answer=a-b/c/d;}
                    
                }
            }
            if(fh2=='*')//第一为乘
            {
                if(fh3=='+')
                {
                    if(fh4=='+')
                    {answer=a*b+c+d;}
                    if(fh4=='-')
                    {answer=a*b+c-d;}
                    if(fh4=='*')
                    {answer=a*b+c*d;}
                    if(fh4=='/')
                    {answer=a*b+c/d;}
                    
                }
                if(fh3=='-')
                {
                    if(fh4=='+')
                    {answer=a*b-c+d;}
                    if(fh4=='-')
                    {answer=a*b-c-d;}
                    if(fh4=='*')
                    {answer=a*b-c*d;}
                    if(fh4=='/')
                    {answer=a*b-c/d;}
                    
                }
                if(fh3=='*')
                {
                    if(fh4=='+')
                    {answer=a*b*c+d;}
                    if(fh4=='-')
                    {answer=a*b*c-d;}
                    if(fh4=='*')
                    {answer=a*b*c*d;}
                    if(fh4=='/')
                    {answer=a*b*c/d;}
                    
                }
                if(fh3=='/')
                {
                    if(fh4=='+')
                    {answer=a*b/c+d;}
                    if(fh4=='-')
                    {answer=a*b/c-d;}
                    if(fh4=='*')
                    {answer=a*b/c*d;}
                    if(fh4=='/')
                    {answer=a*b/c/d;}
                    
                }
            
        
    }
    	}
    	public static int getAnswer(){
    		return answer;
    	}
    }
    

      

    CalculatorTest.java(测试)代码如下:

    import static org.junit.Assert.*;
    import junit.framework.Assert;
    import org.junit.Before;
    import org.junit.Test;
    
    public class CalculatorTest {
    	@Before
    	public void setUp() throws Exception {
    	}
    
    	@Test
    	public void testOnefhnum() {
    		Calculator.Onefhnum(1,2,0);
    		Assert.assertEquals(3, Calculator.getAnswer());
    	}
    
    	@Test
    	public void testTwofhnum() {
    		Calculator.Twofhnum(2,3,4,0,1);
    		Assert.assertEquals(1, Calculator.getAnswer());
    	}
    
    	@Test
    	public void testThreefhnum() {
    		Calculator.Threefhnum(4,5,5,6,0,0,0);
    		Assert.assertEquals(20,Calculator.getAnswer());
    	}
    
    	@Test
    	public void testgetAnswer() {
    		
    	}
    
    }
    

      测试情况如下:(成功)

    二、白盒测试与黑盒测试:

    1.白盒测试:

    (1). testOnefhnum白盒测试(一个运算符,两个变量):

    (2). testTwofhnum白盒测试(两个运算符,三个变量):

    (3). testThreefhnum白盒测试(三个运算符,四个变量):

    2.黑盒测试:

  • 相关阅读:
    [转载] 关于mkvtoolnix批量处理的
    转载:JMeter压力测试入门教程[图文]
    分享 stormzhang的Andoid学习之路
    Sublime Text 2 插件
    PHP 操作SQLite
    curl 远程下载图片
    centos lamp 配置
    php 例子 如何转换ISO8601为 utc时间
    php 常用 常量集合
    php 文档操作
  • 原文地址:https://www.cnblogs.com/babybluecsj/p/4468995.html
Copyright © 2011-2022 走看看