软件工程第二次作业

1.选择开发工具

团队作业采用的是C语言编程的,因此选用的开发工具为codeblocks,在codeblocks下配置Googletest测试单元。

2.练习自动单元测试技术

  • 配置codeblocks
    • 配置截图如下:
      • 在新建的工程下右键project,选择Build options...清除Compiler settings > Compile Flags下与-std=有关的复选框点击选项卡Compiler settings > Other options,在对话框中填写-std=gnu++11,
      • 在Linker settings > Other linker options下填写-lgtest,点击OK
      • 点击选项卡Search directories,在Compiler子选项卡中Add一项,填写解压后的googleTest下的include文件夹路径,如 C:..........\Documents\Googletest\googletest-release-1.7.0\include;
      • 在Linker子选项卡中Add一项,填写新建的文件夹路径,如C:..........\Documents\Googletest\googletest-release-1.7.0codeblocks-mingw;
  • 单元测试
    团队项目中我负责一小块代码,这里给出测试的是我暂时的一点点想法及代码,为了测试的方便里面有很多的增添删除及修改:
 #include <gtest/gtest.h>
 #include<iostream>
 #include<gtest/gtest.h>
 using namespace std;
 int a[10][10]={{0}};//二维数组初始化为零,定为全局变量
 int array_orientation(int x,int y,int k){      
    int as[1][8]={{0}};
    int i=0,j;
    as[i][k]=-1;
    for(j=0;j<8;j++){                     
        switch(j){
        case 0:a[x-1][y-1]=as[i][j];break;
        case 1:a[x-1][y]=as[i][j];break;
        case 2:a[x-1][y+1]=as[i][j];break;
        case 3:a[x][y-1]=as[i][j];break;
        case 4:a[x][y+1]=as[i][j];break;
        case 5:a[x+1][y-1]=as[i][j];break;
        case 6:a[x+1][y]=as[i][j];break;
        case 7:a[x+1][y+1]=as[i][j];break;
        }
    }
    for(i=0;i<10;i++){
     for(j=0;j<10;j++){
       if(i==x&&j==y)
          a[i][j]=3;
     }
   }
   }
 TEST(array_orientationTest, HandleNoneZeroInput)
 {
    EXPECT_EQ(1, array_orientation(3,3,2));
    EXPECT_EQ(0, array_orientation(2,3,2));
 }
 int main(int argc, char* argv[])
 {
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
 }
- 单元测试结果如下图所示,其中绿色代表通过,红色代表失败。

posted on 2018-03-21 15:06  lymiou1505_3  阅读(157)  评论(0编辑  收藏  举报