Author: kagula
Date: 2018-05-11
这种情况只发生在“测试驱动”编码方式中,现实世界我很少用到,这里只是为了大致有个了解。
Step1:新建我们的第一个测试单元UnitTest1,新建solution
Visual C++ -> Test -> Native Unit Test Project
Step2:
用下面的代码替代建立的默认模板
Date: 2018-05-11
Introduction
VC自带多个VC++单元测试工具,其中Microsoft Unit Testing Framework原生支持Test Explorer, 这里通过三个例子来学习Microsoft Unit Testing Framework.Environment
[1]Visual Studio 2017, update 7.1Content
一、最简单的测试这种情况只发生在“测试驱动”编码方式中,现实世界我很少用到,这里只是为了大致有个了解。
Step1:新建我们的第一个测试单元UnitTest1,新建solution
Visual C++ -> Test -> Native Unit Test Project
Step2:
用下面的代码替代建立的默认模板
unittest1.cpp
#include "stdafx.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#include <iostream>
using namespace std;
TEST_MODULE_INITIALIZE(ModuleInitialize)
{
Logger::WriteMessage("In Module Initialize");
}
TEST_MODULE_CLEANUP(ModuleCleanup)
{
Logger::WriteMessage("In Module Cleanup");
}
/*
第一次运行本unit test, 使用Ctrl+R+A 运行全部测试.
以后你可以在Test Explorer窗口中运行指定的测试函数.
*/
namespace KagulaUnitTest
{
//模拟我的第一个待测试的function集合
TEST_CLASS(myFirstFunctionSetForTest)
{
public:
TEST_METHOD(TestMethod1)
{
//运行unit test不会打开控制台窗口, 所以你也不会看到下面这条代码的任何std输出.
cout << "hello,World!" << endl;
}
TEST_METHOD(TestMethod2)
{
//模拟耗时的操作.
for (size_t i = 0; i < 1000; i++)
{
if ((i % 100) == 0)
{
//VisualStudio2017Update7.1有个很严重的缺陷,有时候,你改了代码,但是使用Test Explorer中的"Run selected Tests"菜单项,
//运行的还是老的代码, 这时候, 你得rebuild solution后再运