Изучаю темы по юнит тестированию на основе этого туториала https://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php Несколько дней пытаюсь решить одну проблему (в C++ опыта мало; недельный поиск ничего не дал, либо я банально не увидел в ответах решения этой проблемы).
Суть: когда в самом коде юнит теста вызываю статическую функцию cubic() - т.е. все четко по туториалу - все отлично работает!!! НО. Затем я всего лишь создаю в главном проекте (в туториале это "simplemath") простой класс:
// SimpleClass.h
#pragma once
class SimpleClass
{
public:
SimpleClass();
~SimpleClass();
};
// SimpleClass.cpp
#include "pch.h"
#include "SimpleClass.h"
SimpleClass::SimpleClass()
{
}
SimpleClass::~SimpleClass()
{
}
И затем в юнит тесте (в туториале это отдельный проект в решении "unittest_SimpleMath") просто пытаюсь создать переменную этого класса:
#include "pch.h"
#include "gtest/gtest.h"
#include "SimpleClass.h"
TEST(testSimpleClass, mySimpleClass)
{
SimpleClass sc;
EXPECT_EQ(1000, cubic(10));
}
То получаю ошибку линковщика:
Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: __thiscall SimpleClass::SimpleClass(void)" (??0SimpleClass@@QAE@XZ) в функции "private: virtual void __thiscall testSimpleClass_mySimpleClass_Test::TestBody(void)" (?TestBody@testSimpleClass_mySimpleClass_Test@@EAEXXZ) Unittest_MainApplication C:\PROJECTS\TEST\SimpleGoogleTest\MainApplication\Unittest_MainApplication\Unittest_SimpleClass.obj 1 Link
Что необходимо сделать, чтобы в юнит тесте можно было создавать экземпляры классов? Или это в принципе не возможно/или так делать неправильно?
SimpleClass.cppвы в этот проект добавить не забыли? – AnT stands with Russia Sep 11 '19 at 14:28