加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 我应该将单元测试放在一个单独的库中吗?单独的子目录?

发布时间:2020-12-16 07:00:30 所属栏目:百科 来源:网络整理
导读:我有一个庞大的代码库,它有一些(太少)单元测试;我正在向库中添加代码,尝试对新代码进行单元测试(我还希望将来为旧代码添加单元测试,当我获得更多经验时). 我们目前使用自定义(非常精细)的单元测试框架;我想切换到boost.test. 我的图书馆布局是: mylib1(300
我有一个庞大的代码库,它有一些(太少)单元测试;我正在向库中添加代码,尝试对新代码进行单元测试(我还希望将来为旧代码添加单元测试,当我获得更多经验时).

我们目前使用自定义(非常精细)的单元测试框架;我想切换到boost.test.

我的图书馆布局是:

> mylib1(300个文件,70000行代码)

> src

> foo

> foo.cpp
> foo_part.cpp
> foo_part.h
> UnitTests – 我应该把它移到mylib外面吗?

> foo_test1.cpp
> foo_test2.cpp
> foo_test3.cpp

>吧

> bar.cpp
> bar_part.cpp
> bar_part.h
> UnitTests – 它属于这里吗?

> bar_test1.cpp
> bar_test2.cpp
> bar_test3.cpp

>包括

> foo.h
> bar.h

> mylib2(70个文件,7000行代码)

>看起来像上面的mylib1

> UnitTestFramework

> src

> MockObject1.cpp – 它属于这里吗?
> Asserter.cpp – boost.test将取代它
> TestFixture.cpp – boost.test将取代它

>包括

> MockObject1.h
> Asserter.h – boost.test将取代它
> TestFixture.h – boost.test将取代它

我在这里问以下问题:

>单元测试应该是mylib DLL的一部分吗? (我将mylib1和mylib2链接到一个DLL中)
>单元测试的源代码应该位于mylib1目录下吗?
>由于我有mylib1和mylib2,如何定位相应的单元测试 – 在同级目录中,一起等?
>我应该在哪里放置模拟对象的源代码? (它们同时服务于mylib1和mylib2)

解决方法

>单元测试是一种文档,因此我会保留目录结构
> mocks / fakes是单元测试中的助手,因此我不会将它们留在源目录中.在源中创建一个新目录,并将其移动到那里.

实际上,我会进一步简化它:

+ mylib1 (300 files,70000 lines of code)
    + unit_tests
      + test_foo.cpp
      + test_bar.cpp
    + mocks
      + mock_foo.hpp
      + mock_bar.hpp
    + foo.cpp
    + foo.hpp
    + bar.cpp
    + bar.hpp
 + mylib2
similar as for mylib1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读