解决C++代码单元测试中的难题-不可验证和IO调用
生活随笔
收集整理的這篇文章主要介紹了
解决C++代码单元测试中的难题-不可验证和IO调用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在做C++程序的單元測試時,大家經(jīng)常會遇到兩個問題:
1.不方便驗(yàn)證測試結(jié)果,原因是因?yàn)椴豢稍L問保護(hù)和私有類成員
2.對于需要訪問的connect、receive、send等不好繞過
?
這里介紹兩種方法,即可解決:
1.在編譯單元測試代碼時,加上UNIT_TEST宏(名字可以為其它你喜歡的),并將private定義成public,即:
#define private public
這樣就可以測試代碼就可以隨意訪問類的任何成員了,單元測試就是要做白盒測試,將內(nèi)部看得清清楚楚
?
以前喜歡使用友元類的方式,但那需要在代碼中安插測試代碼,所以這個辦法更好。
?
2.對于IO問題,只需要從被測試再繼承一下,然后重實(shí)現(xiàn)(如果為虛擬,則為隱藏)相應(yīng)的方法,改成方便驗(yàn)證的,這樣問題也就好解決了。設(shè)計模式中的Decorator模式用在這里非常合適。
?
轉(zhuǎn)載于:https://blog.51cto.com/mooon/909771
總結(jié)
以上是生活随笔為你收集整理的解决C++代码单元测试中的难题-不可验证和IO调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国银屑病患者中银屑病关节炎的患病率和特
- 下一篇: 指针相减