ファイルに次のコードがありますtested.cpp
。
#include <iostream>
using namespace std;
class tested {
private:
int x;
public:
tested(int x_inp) {
x = x_inp;
}
int getValue() {
return x;
}
};
私は別のファイル(と呼ばれるtesting.cpp
)もあります:
#include <cppunit/extensions/HelperMacros.h>
#include "tested.cpp"
class TestTested : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(TestTested);
CPPUNIT_TEST(check_value);
CPPUNIT_TEST_SUITE_END();
public:
void check_value();
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestTested);
void TestTested::check_value() {
tested t(3);
int expected_val = t.getValue();
CPPUNIT_ASSERT_EQUAL(7, expected_val);
}
testing.cpp
ファイルをコンパイルしようとすると、次のようになりますundefined reference to
。まあ、これは main (プログラムのエントリ ポイント) がないからです。そのため、コンパイラはコードの実行を開始する方法を知りません。
しかし、私には明確ではないのは、 でコードを実行する方法ですtesting.cpp
。追加しようとしました:
int main() {
TestTested t();
return 1;
}
ただし、何も出力しません (また、3 は 7 に等しくないため、エラー メッセージが返されることが予想されます)。
単体テストを実行する正しい方法を知っている人はいますか?