我们是 JPos 库的新手,我们希望自动化需要外围交互的测试用例。
为了自动化多个场景的测试,我们想要绕过连接的外围设备并为我们的应用程序提供模拟值。
例如,我们有一个连接的“秤”来测量重量,我们想模拟从秤上读取的值,所以这种方法,
scale.getWeightUnit()
返回我们的模拟值。
是否有可能在 JPos 中进行一些配置?
Jpos 库使用 jpos.xml 中提到的服务类这些服务类可以在外部 pos.jar 中(应该在类路径中)并在运行时创建。例如,IBM 提供了一个 ibmpos.jar 文件,该文件具有与外围设备对话的服务实现。
所以要模拟服务,编辑 jpos.xml 文件,创建自己的服务实现以返回模拟值并在类路径中添加实现类。
并且您还需要在服务实现类中触发 dataOccured 事件来模拟硬件事件(例如模拟扫描仪的扫描事件)
如果您想完全绕过连接的外围设备(如跳过所有 JPos 部分),您可以创建一个模拟类,其中包含您使用的方法存根。
请参阅此处: Java - 如何在 JUnit 中使用存根
在这种情况下,我通常只实现一个虚拟的 JavaPOS 服务。您可以只返回一个固定或随机值。