zoukankan      html  css  js  c++  java
  • 软件工程第二次作业(Junit和GoogleTest)

    使用Eclipse的Junit框架进行单元测试

    一、前言

    我的电脑因为以前学过安卓开发,已经安装好了eclipse,看了邹欣老师的博客,博客上讲的的非常详细,所以在进行的过程中遇到困难,基本都能解决。

    二、详细过程

    1、新建项目

    打开eclipse,点击左上角的file,然后new-->Project

    选择Java Project

    点击next,工程名字为TestUnit

    右击工程TestUnitnew-->class

    包名个人喜好,类名,我这里选择Claculator,点击finsh

    然后在Claculator.java中添加如下代码:

    package zhangyazhou;
    
    public class Calculator {
    public int add(int x,int y){
    	return x + y;
    }
    public int substract(int x,int y){
    	return x - y;
    }
    public int multiply(int x,int y){
    	return x * y;
    }
    public int divide(int x,int y){
    	return x / y;
    }
    }
    

    eclipse中如下图:

    2、进行单元测试

    选中Claculator.class,点击右键,new-->Junit Test case.

    点击finsh

    ClaculatorTest.java里添加如下代码:

    package zhangyazhou;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class CalculatorTest {
    
    @Test
    public void testAdd() {
    	assertEquals(8,new Calculator().add(3,5));
    	assertEquals(5,new Calculator().add(3,2));
    	assertEquals(0,new Calculator().add(3,-3));
    }
    }
    

    eclipse中如下图:

    现在进行测试,选中ClaculatorTest.java,右键,Run As-->Junit Test

    结果如下:

    更改ClaculatorTest.java部分数值,结果如下:

    3、自动测试

    选中Claculator.java,右击,new-->other

    搜索Junit

    点击next,重命名为ClaculatorAutoTest,再点击next

    勾选需要测试的函数。

    最后运行测试,因为没有改动ClaculatorAutoTest.java里的值,所以,测试失败。

    使用GoogleTest框架对C++进行单元测试

    一、前期准备

    二、环境配置

    解压安装包,找到msvc文件夹。

    点击进入,找到gtest.sln,用VS2010打开。

    依此编译gtest,和gtest_main两个项目的Debug和Relase版本。

    编译完成后,进入msvcgtestDebug的文件下,找到gtestd.lib,gtestd_main.lib,复制到与msvc同目录下的lib文件夹中(没有的话,新建一个)。

    在VS2010中新建一个控制台程序,并且添加fun.cppfun.h,如图所示。

    选中工程文件,右击,进入属性。

    进入C/C++-->常规-->附加包含目录

    复制GoogleTest里的include文件夹,复制到里面。

    然后进入链接器-->输入,编辑附加依赖项。

    现在环境配置好了。

    三、进行单元测试

    在fun.cpp中添加代码:

    #include "fun.h"
    #include <iostream>
    #include "stdafx.h"
    using namespace std;
    int fun(int a,int b)
    {
    return (a - b);
    }
    

    在fun.h中添加代码:

    #pragma once
    int fun(int a,int b);
    

    在Testunit.cpp添加代码:

    #include "stdafx.h"
    #include "gtest/gtest.h"
    #include "fun.h"
    #include <tchar.h>
    
    TEST(fun,casel)
    {
    	EXPECT_LT(-2,fun(1,2));
    	EXPECT_EQ(-1,fun(1,2));
    	ASSERT_LT(-2,fun(1,2));
    	ASSERT_EQ(-1,fun(1,2));
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	testing::InitGoogleTest(&argc,argv);
    	RUN_ALL_TESTS();
    	system("PAUSE");
    	return 0;
    }
    

    最后点击运行,结果如下:

    总结

    从本次的任务中,我学会了如何利用JunitGoogleTest进行单元测试,对以后的软件开发能力又有了进一步提高。

  • 相关阅读:
    PAT 甲级 1115 Counting Nodes in a BST (30 分)
    PAT 甲级 1114 Family Property (25 分)
    PAT 甲级 1114 Family Property (25 分)
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
  • 原文地址:https://www.cnblogs.com/zhangyazhou/p/8620412.html
Copyright © 2011-2022 走看看