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是否正确被编码(是/否):是

     

     

  • 相关阅读:
    【YbtOJ#20238】最优路线
    【洛谷P3247】最小公倍数
    【洛谷P3261】城池攻占
    【YbtOJ#20236】红点蓝点
    【YbtOJ#20235】公共序列
    Wing IDE 4.1使用笔记一修正一下框框字体显示不了中文
    飘逸的python
    The 12th tip of DB Query Analyzer, powerful in text file process
    PHP网站如何解决大流量与高并发的问题
    【python】利用sftp及rsa密匙实现远程拷贝文件
  • 原文地址:https://www.cnblogs.com/skylarzhan/p/9030680.html
Copyright © 2011-2022 走看看