zoukankan      html  css  js  c++  java
  • 驱动模块和装模块的概念——Junit单元测试案例

    驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。

    桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。

    虽然各个模块开发好了,在做单元测试时,也是需要写驱动模块与桩模块的。因为做单元测试一个最重要的原则就是把被测试的单元与其他关联模块隔离开来进行测试。

    测试代码:

    Public class DemoTest {
        public int demofunc() {
            int n1 = 4, n2 = 5;
            int a;
            a = sumFunc(n1, n2);
            System.out.println(a);
    retrun a;
        } //模块A
        Public int sumFunc(int a, int b) {
            int c1, c2;
            c1 = factorial(a);
            c2 = factorial(b);
            return (c1 + c2);
        }//模块B
        Public int factorial(int n) {
            Int rtn = 1;
            Int i;
            for (i = 1; i<= n; i++) {
                rtn *= i;
            }
            return (rtn);
        }//模块C
    }

    1、请分别对模块A,B,C进行单元测试。

    2、新建class,同时在该项目中的properties 中java build path ,add library-junit 。然后新建junit文件。

    3、格式如下:

    对模块A进行单元测试时:

     01.是否需要驱动模块(是/否)?是

    02.  如果需要,你编写的驱动模块(拷贝或截图):

                 

       @Test
     public void testDemofunc() {
    
          body.demofunc();
    
          assertEquals(144, body.demofunc());  
    }  

    如果需要,你编写的桩模块(拷贝或截图):

    public int sumFunc(int a, int b) {
                    return (144);
    
    }//模块B

     03. 运行结果分别(截图):

     

    04.  模块A是否被正确编码(是/否):是

    对模块B进行单元测试时:

     01. 是否需要驱动模块(是/否)?是

     02.如果需要,你编写的驱动模块(拷贝或截图):

     

       @Test
    
        public void testSumFunc() {
    
            assertEquals(144, body.sumFunc(4,5));   
    
        }        

    如果需要,你编写的桩模块(拷贝或截图):

                    public int factorial(int n) {
    
                        if(n==4)
    
                            return (24);
    
                        else
    
                            return(120);
    
        }//模块C

    03.  运行结果分别(截图):

     

     

     04.  模块B是否正确被编码(是/否):是

    对模块C进行单元测试时:

     01. 是否需要驱动模块(是/否)?是

     

     02.  如果需要,你编写的驱动模块(拷贝或截图):

         

           @Test
    
               public void testFactorial() {
    
                    body.factorial(4);
    
                    body.factorial(5);
    
                    assertEquals(24, body.factorial(4));
    
                    assertEquals(120, body.factorial(5));
    
        }

            运行结果分别(截图):

     

     

     03.  模块C是否正确被编码(是/否):是

     

     

  • 相关阅读:
    android之间传递list
    android 中string.xml中的%1$s
    android activity传递实体类对象
    android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值
    android 获取屏幕的宽和高
    android dialog弹出的情况下监听返回键
    join on用法
    android webview加载网络连接
    HDU 5025 Saving Tang Monk 【状态压缩BFS】
    ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A、Saving Tang Monk II 【状态搜索】
  • 原文地址:https://www.cnblogs.com/skylarzhan/p/9030680.html
Copyright © 2011-2022 走看看