0
我正在編寫幾乎所有我的測試代碼都寫在頭文件中的項目。我這樣做主要是因爲我正在進行測試驅動開發,這導致了我添加的每個類的大量補充類:接口,測試,模擬等。如果我還必須處理,我想我會發瘋與所有這些文件的CPP版本...使用命名空間和頭文件
我不添加「使用命名空間標準」我的頭開始,因爲我知道這是一個不,不。總之,可以說,我現在我的初始化Blob對象在測試開始,如下:
Blob v =
boost::assign::list_of(std::pair<std::string, Container >("Scotland",Container(boost::assign::list_of(1)(2)(3).convert_to_container<std::vector<int> >())))
(std::pair<std::string, Container >("Sweden",Container()));
其中斑點是typedef
版某處作爲std::vector<std::pair<std::string, Container > >
。
我該如何使這個更漂亮?我使用list_of的原因是爲了讓事情更具可讀性,但在這種情況下,我認爲這會讓閱讀變得更加困難。這是好了很多:
Blob v =
list_of(pair<string, Container >("Scotland",Container(list_of(1)(2)(3).convert_to_container<vector<int> >())))
(pair<string, Container >("Sweden",Container()));
,但我不能在頭做到這一點...
什麼可能我做才能解決這個問題?我正在使用C++ 98。
UPDATE:
只是一個想法。如果我將所有測試頭重命名爲cpp文件,該怎麼辦?
你能解釋爲什麼TDD開發導致頭文件中的所有代碼? – Pradheep 2013-04-25 10:38:11
@Pradheep它對我來說更方便,至少不必在Foo.h,Foo.cpp,TestFoo.h,TestFoo.cpp,MockFoo.h,MockFoo.cpp和IFoo.h之間跳轉。相反,我只有.h版本。我也必須創建所有這些文件並將它們放在正確的文件夾中。 – Baz 2013-04-25 10:40:25
把更多的代碼放在cpp文件上意味着更多的編譯時間和更難以調試的問題,因爲所有的東西都會是相同的頭文件。它不是用戶在這裏的便利,而是構建時間更短,模塊化程度更好 – Pradheep 2013-04-25 11:04:09