软件工程第二次作业
1 开发工具的选择
我们组经过讨论,选择了一直用的codeblocks作为团队项目开发工具,选择语言为C++。由于之前已经使用过codeblocks,因此在此仅附上运行该开发工具的截图:
2 自动单元测试学习
上网查阅后我们团队的项目的组长选择了googleText作为测试单元的工具,并且他的这篇文章
对我完成作业有很大的帮助。
(1) 工具下载
- 下载工具解压并在相应路径下完成创建:
- codeblocks的配置:
清除-std=c++11有关的复选框:
添加-std=gnu++11:
点击search directories填写文件夹路径;
(2) 进行单元测试
完成之前的各项配置和更改后,就可以进行单元测试了。我选择的以前的作业作为测试代码,测试实现的基本功能为,测试数据为素数输出1,否则输出0。具体代码如下:
#include<gtest/gtest.h>
#include<iostream>
#include<stdio.h>
using namespace std;
//int prime(int);
/*int main()
{
int x;
scanf("%d",&x);
if(prime(x)==1)
printf("%d is prime\n",x);
else printf("%d is not prime\n",x);
return 0;
}*/
int prime(int y)
{
int i,flag=1;
for(i=2;i<=y/2;i++)
if(y%i==0)
{
flag=0;
break;
}
return flag;
}
TEST (primeTest,HandleNoneZeroInput)
{
EXPECT_EQ(1,prime(3));//输出为1是素数
EXPECT_EQ(0,prime(4));//输出为0不是素数
EXPECT_EQ(1,prime(8)); //错误的测试案例
}
int main(int argc, char *argv[]){
// int a;
testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
// cout<<prime(a);
return 0;
}
最终测试结果运行如下图所示。可见有两个正确的测试结果,一个错误的。