我参与了一个项目,除其他外,必须控制各种实验室仪器(机器人,读者等......)
大多数这些仪器都是通过基于DCOM的驱动程序,串行端口或通过启动具有各种参数的专有程序来控制的.其中一些程序或驱动程序包括模拟模式,有些则不包括.显然,我的开发计算机无法连接到所有仪器,虽然我可以为驱动程序包含模拟模式的仪器启动虚拟机,但如果没有实际仪器,则无法测试某些内容.
现在,我自己的代码主要不是关于仪器的实际操作,而是关于启动操作,确保一切正常,并在它们之间进行同步.它是用Java编写的,使用各种库与仪器及其驱动程序进行交互.
我想为各种仪器控制模块编写单元测试.但是,因为仪器可以在很多方面失败(其中一些是记录的,其中一些不是),因为代码依赖于这些部分随机输出,我对于如何为这些部分编写单元测试有点迷失.我的代码.我考虑过以下解决方案:
虽然我目前正在考虑与后者合作,但我错过了一些东西吗?有一个更好的方法吗?
代码:
for(x=abc.begin();x!=abc.end();x++)
{
if(-----)
{
----
abc.erase(x);
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:::
Dangerous iterator用法
擦除后迭代器无效,因此解除引用或将其与另一个迭代器进行比较无效.
在上面的代码中使用擦除功能的错误用法是什么?