我正在做一个项目,我在头文件中编写了几乎所有的测试代码。我这样做主要是因为我正在做测试驱动的开发,这导致我添加的每个类都有大量的互补类:接口、测试、模拟等。我想如果我也必须处理的话我会发疯的使用所有这些文件的 cpp 版本...
我没有在标题的开头添加“使用命名空间 std”,因为我知道这是一个不,不。无论如何,假设我目前在测试开始时初始化我的 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()));
其中 Blob 在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。
更新:
只是一个想法。如果我将所有测试头文件重命名为 cpp 文件会怎样?