相关疑难解决方法(0)

为什么我不应该包含cpp文件而是使用标题?

所以我完成了我的第一个C++编程任务,并获得了我的成绩.但根据评分,我失去了分数including cpp files instead of compiling and linking them.我不清楚这意味着什么.

回顾一下我的代码,我选择不为我的类创建头文件,但是在cpp文件中做了所有事情(它看起来没有头文件......).我猜这个评分者意味着我写了'#include'mycppfile.cpp";' 在我的一些文件中.

#include对cpp文件的推理是: - 应该进入头文件的所有东西都在我的cpp文件中,所以我假装它就像一个头文件 - 在猴子看猴子做时尚,我看到了其他头文件#include在文件中是'd,所以我为我的cpp文件做了同样的事情.

那究竟是我做错了什么,为什么不好呢?

c++ header-files

132
推荐指数
6
解决办法
2万
查看次数

gtest.lib和gtest_main.lib有什么区别?

Google的C++ Test Framework有两个输出库:一个是gtest.lib,另一个是gtest_main.lib.根据Nik Reiman关于如何使用Visual Studio设置gtest 的答案,我们应该链接到gtest_main.lib但是我链接到gtest.lib并且我运行的示例测试用例运行正常.

两个库之间有什么区别,我链接到哪一个是否重要?

c++ linker googletest visual-studio-2008

27
推荐指数
2
解决办法
1万
查看次数

gmock可以用于存根C函数吗?

我是gmock的新手,所以我想知道如何在单元测试的测试函数中调用简单的C函数.

例:

int func(int a)
{
  boolean find;
  // Some code
  find = func_1();
  return find;
}
Run Code Online (Sandbox Code Playgroud)

我搜索过gmock,在我的理解中gmock没有提供存根简单C函数的功能,因此我想问一下gmock是否提供了mock或stub的功能func_1

如果不是如何func_1在不更改源代码的情况下手动在我的测试代码中存根?我正在使用谷歌测试框架进行单元测试.

谢谢.

c unit-testing googletest gmock

12
推荐指数
4
解决办法
1万
查看次数

使用 Visual Studio C++ 进行单元测试时出现链接器错误

我想用 Visual Studio 对我的 C++ 项目进行单元测试。将项目中的文件夹添加为测试项目的包含路径后,尝试编译测试时出现链接器错误:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol "public: __thiscall Piece::Piece(enum Color)" (??0Piece@@QAE@W4Color@@@Z) referenced in function "public: __thiscall Bishop::Bishop(enum Color)" (??0Bishop@@QAE@W4Color@@@Z)    ChessPlusPlus-Tests D:\Documents\Projects\ChessPlusPlus\ChessPlusPlus-Tests\BishopTests.obj 1   
Error   LNK2019 unresolved external symbol "public: __thiscall Board::~Board(void)" (??1Board@@QAE@XZ) referenced in function "public: void __thiscall ChessPlusPlusTests::BishopTests::ValidMovesTest(void)" (?ValidMovesTest@BishopTests@ChessPlusPlusTests@@QAEXXZ)  ChessPlusPlus-Tests D:\Documents\Projects\ChessPlusPlus\ChessPlusPlus-Tests\BishopTests.obj 1   
Error   LNK2019 unresolved external symbol "public: void __thiscall Board::placePieceAt(class Piece * const,struct Position)" (?placePieceAt@Board@@QAEXQAVPiece@@UPosition@@@Z) referenced in function "public: void __thiscall ChessPlusPlusTests::BishopTests::ValidMovesTest(void)" (?ValidMovesTest@BishopTests@ChessPlusPlusTests@@QAEXXZ)    ChessPlusPlus-Tests D:\Documents\Projects\ChessPlusPlus\ChessPlusPlus-Tests\BishopTests.obj 1 …
Run Code Online (Sandbox Code Playgroud)

c++ unit-testing linker-errors visual-studio

4
推荐指数
1
解决办法
4750
查看次数