• 作业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.黑盒测试:

  • 相关阅读:
    安装SQLServer2000提示“无法验证产品密钥”的解决方法
    【转】SQL Server数据库开发的二十一条军规
    Asp.Net实现FORM认证的一些使用技巧
    记住window.open的用法
    VS2005的关于母版页嵌套的一个小技巧
    一种写法的区别
    问个关于VS使用上的问题
    Server.MapPath方法的应用方法
    一个关于重定向的问题研究,应该具有实用性
    象WORD一样,双击.doc的文件就自动打开WORD并编辑该文件(转)
  • 原文地址:https://www.cnblogs.com/babybluecsj/p/4468995.html
Copyright © 2020-2023  润新知