我正在尝试更好地对我的代码进行单元测试,但是现在我正在编写大量处理远程系统的代码.SNMP,WMI,那种事情.对于大多数类,我可以模拟对象来测试它们,但是如何处理单元测试真实系统?例如,如果我的类出去并获取服务器的Win32_LogicalDisk对象,我怎么可能对它进行单元测试?
假设你的意思是"我如何测试那些很难/不可能模拟的东西":
如果你有一个"熄灭并获取服务器的Win32_LogicalDisk对象"的类并执行其他操作(以某种方式使用'Win32_LogicalDisk'对象),假设您要测试使用此对象的类的各个部分,可以使用依赖注入来允许您模拟"Win32_LogicalDisk"对象.例如:
class LogicalDiskConsumer(object): def __init__(self, arg1, arg2, LogicalDiskFactory) self.arg1=arg1 self.arg2=arg2 self.LogicalDisk=LogicalDiskFactory() def consumedisk(self): self.LogicalDisk.someaction()
然后在您的单元测试代码中,传入一个'LogicalDiskFactory',它返回'Win32_LogicalDisk'的模拟对象.