模拟对象生成与SOLID设计原则在C编程中的应用
1. 模拟对象生成相关问题及工具
在测试代码时,我们可能会遇到模拟对象(Mock)相关的错误。例如,在 tests/IO/FlashTest.cpp 文件的第105行出现错误:
tests/IO/FlashTest.cpp:105: error: Failure in
TEST(CppUTestMockIO, WriteSucceedsReadyImmediately)
Mock Failure: Expected call did not happen.
EXPECTED calls that did NOT happen:
IO_Write -> int addr: <0>, int value: <64>
IO_Write -> int addr: <65261>, int value: <7658>
IO_Read -> int addr: <0>
IO_Read -> int addr: <65261>
ACTUAL calls that did happen:
<none>
如果生产代码没有将设备置于命令模式,CppUMock会生成类似的错误。与手工编写的模拟对象不同,CppUTest的这个版本不会拒绝与预期调用顺序不同的调用。这在交互没有顺序依赖时可以进行更灵活的测试,但在有顺序依赖时就会成为问题。
CppUMock能减少创建模拟对象时的痛苦和重复工作,它还有更多功能,可通过访
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



