1.我选择的开发工具为Visual Studio 2019,测试工具为VSTS,截图如下。
2.创建测试项目和待测项目
- 在待测项目Project1中编写Main.cpp。其中的Solve()函数主要功能为计算容器中不同数字的个数。
- 在测试单元项目UnitTest1中编写3个测试用例。
3.Main.cpp文件内容
#include<iostream>
#include<set>
#include<vector>
using namespace std;
int Solve(vector<int> &v)
{
set<int>s;
for (auto it : v) s.insert(it);
return s.size();
}
int main()
{
vector<int>v;
v.push_back(1);
v.push_back(1);
v.push_back(1);
v.push_back(5);
v.push_back(3);
cout << Solve(v);
return 0;
}
4.Main.h文件文件内容
#include <set>
#include <vector>
#pragma once
int Solve(std::vector<int>& v);
5.添加Main.obj路径
6.测试代码
#include "pch.h"
#include "CppUnitTest.h"
#include <vector>
#include "../Project1/Main.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
std::vector<int>v;
v.push_back(1);
v.push_back(1);
v.push_back(1);
v.push_back(5);
v.push_back(3);
Assert::AreEqual(Solve(v), 3);
}
TEST_METHOD(TestMethod2)
{
std::vector<int>v;
v.push_back(1);
v.push_back(1);
v.push_back(2);
v.push_back(5);
v.push_back(3);
Assert::AreEqual(Solve(v), 4);
}
TEST_METHOD(TestMethod3)
{
std::vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
Assert::AreEqual(Solve(v), 4);
}
};
}
7.运行所有测试
8.打开测试资源管理器查看测试结果
9.小结
通过观察测试结果,我们能够发现,Solve()函数正确通过了前两个编写正确的测试用例,最后一个返回错误的结果是由于使用了错误的用例,符合预期的结果。
通过以上操作,我已经初步掌握了VS2019以及VSTS的使用方法。