我正在尝试更好地对我的代码进行单元测试,但现在我正在编写大量处理远程系统的代码。 SNMP、WMI 之类的东西。对于大多数类,我可以模拟对象来测试它们,但是您如何处理真实系统的单元测试?例如,如果我的类(class)出去并获取服务器的 Win32_LogicalDisk 对象,我怎么可能对它进行单元测试?
最佳答案
假设您的意思是“我如何针对难以/不可能模拟的事物进行测试”:
如果你有一个类“出去并获取服务器的 Win32_LogicalDisk 对象”并做其他事情(以某种方式使用“Win32_LogicalDisk”对象),假设你想测试使用它的类的各个部分对象,您可以使用 Dependency Injection允许您模拟“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”的模拟对象。
关于unit-testing - 使用依赖网络的代码进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44338/