我正在用C++/CLI开发一个应用程序,它通过串口与设备通信。用MS测试测试他们。我只是在阅读有关模拟对象的内容,并且只从概念上理解了它。我在单元测试中面临许多挑战,主要是因为我用来通过串口向我的应用程序发送数据的模拟器以某种方式运行,我无法让它改变它的行为。
我想知道的是:
有关系吗?
发布于 2012-02-28 03:56:10
我是在C嵌入式背景下回答这个问题,但我觉得你的问题在嘲弄方面相当笼统,答案应该适用。
我可以使用模拟对象来模拟串口行为吗?它的输入缓冲器?
是的,这里是一个很好的例子,它是一个被模仿的UART:http://throwtheswitch.org/white-papers/when-bad-code-runs-green.html
可以使用模拟对象来更改串口行为(即假装端口>被阻塞)。
这正是嘲笑的目的。只要您的代码被划分成层,例如
然后,您可以模拟模拟有效操作所需的任何层:缓冲区满、硬件故障等。
可以对更基本的类使用模拟(例如,我想测试我的代码>分配数组的一部分。我可以让模拟假装内存分配由于内存不足而失败吗?
是的,这与前面的问题相似,因为如果您的代码已经包装了一些内存分配代码,那么您可以模拟包装器返回的内容。也许您有一个内存管理器类型类
适合模拟C++/CLI应用程序吗?
对此不太确定
,在您的经验中,有哪些其他的模拟框架(更好的免费软件,但对付费的框架开放)对此任务有好处?
上面链接的示例来自unity + CMock + Ceedling (主要是一个C测试框架)。它是开源的,对于嵌入式C应用程序非常有用。不确定是否支持C++。
,这些是否与MS测试相吻合?
对不起,我也不知道这个
https://stackoverflow.com/questions/5727992
复制相似问题