unit-testing - 使用依赖网络的代码进行单元测试

标签 unit-testing testing wmi

我正在尝试更好地对我的代码进行单元测试,但现在我正在编写大量处理远程系统的代码。 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/

相关文章:

c#单元测试模拟类属性

angularjs - 尝试测试工厂时遇到注入(inject)问题

android - 单元测试逼真的Android类。测试环境,生命周期和响应

c# SpecFlow BeforeScenario 钩子(Hook)

c# - 使用 UAC 启动时获取当前用户名

python - 如何使用 python 收集 GDI 和用户对象的性能指标

c# - 使用 Wmi win32_Process 的远程进程执行 - 获取进程的标准输出

unit-testing - 如何对 Groovy 脚本进行单元测试,在 Elasticsearch 中用于 _score 计算

android - Android Studio 无法识别 "RobolectricTestRunner.class"

c++ - 如何从 snprintf() 获得 -1