使用网络依赖代码进行单元测试

Van*_*man 9 testing wmi unit-testing

我正在尝试更好地对我的代码进行单元测试,但是现在我正在编写大量处理远程系统的代码.SNMP,WMI,那种事情.对于大多数类,我可以模拟对象来测试它们,但是如何处理单元测试真实系统?例如,如果我的类出去并获取服务器的Win32_LogicalDisk对象,我怎么可能对它进行单元测试?

小智 5

假设你的意思是"我如何测试那些很难/不可能模拟的东西":

如果你有一个"熄灭并获取服务器的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()
Run Code Online (Sandbox Code Playgroud)

然后在您的单元测试代码中,传入一个'LogicalDiskFactory',它返回'Win32_LogicalDisk'的模拟对象.