簡體   English   中英

我是否必須將經過測試的源文件添加到 VS2017 中的單元測試項目中?

[英]Do I have to add tested source files to unit tests' project in VS2017?

我正在嘗試使用教程為我的項目編寫單元測試。

編譯包含測試的項目后,我收到鏈接器錯誤,與問題中的錯誤幾乎相同。 問題是該解決方案添加了對正在測試的項目的引用,但我已經這樣做了,但我仍然遇到與未添加引用相同的錯誤。 然后我發現了這個問題。 解決方案只是將經過測試的源文件添加到測試項目中,當然它工作正常。

這是給我error LNK2019: unresolved external symbol示例代碼:

啊(在 .exe 項目中)

#pragma once

struct A
{
    int a;

    A(int a);
};

A.cpp(在 .exe 項目中)

#include "A.h"

A::A(int a) : a(a)
{
}

Tests.cpp(在測試項目中)

#include "stdafx.h"
#include "CppUnitTest.h"
#include "../Example/A.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

TEST_CLASS(UnitTests)
{
public:
    TEST_METHOD(TestStructInitialization)
    {
        int a = 5;
        A testObject(a);
        Assert::AreEqual(a, testObject.a);
    }
};

也許我誤解了一些東西,但我認為添加引用應該允許在不需要將源文件添加到測試項目的情況下進行測試。 在我已經提到的第一個教程中,沒有關於將源文件添加到測試項目的任何內容,但即使添加了參考,它對我也不起作用。 將每個源文件添加到兩個項目中並不是測試所有內容的快速方法,所以我想知道是否還有其他方法可以做到這一點。

當然,您的測試必須能夠訪問它所需的功能。 由於一個可執行文件無法鏈接到另一個可執行文件,您有兩個選擇:

  • 在單元測試項目中也添加源文件
  • 重構代碼,以便您要測試的代碼是一個與所有三個可執行文件鏈接的庫(靜態或共享)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM