【发布时间】:2021-02-22 14:22:12
【问题描述】:
我遇到了抽象类的一些问题,就是测试它们有问题(代码的公共部分没有创建具体实现),我想问应该如何正确解决这个问题。
我需要有一个类来表示我从 PLC 读取的变量的当前状态(我在这里使用观察者模式),并且我还需要写入其中的一些变量。我希望这部分独立于连接(OPC UA,MODBUS ...)这就是为什么我创建了类PlcData,它代表我需要写入或读取的所有变量,这是一个抽象类,我想创建基于不同的实现关于连接类型(PlcDataOpcua,PlcDataModbus ...)
但是当我尝试编写单元测试时,我遇到了这个问题,我无法测试所有PlcData 之间共享的公共代码。
基于第二个最受好评的答案here 我想出了这样的事情:
但是因为Connection 需要更新PlcData 中的信息,它需要跟踪PlcData 实例。对我来说,它比原来的解决方案更复杂,但它当然是“可测试的”。
谁能告诉我该走哪条路或想出更好的解决方案?
【问题讨论】:
-
对扩展抽象类的具体类进行单元测试有什么问题?
标签: java unit-testing design-patterns junit