我想成为更好的有关单元的测试我的代码,但是我现在的写作大量的代码,涉及远程系统。SNMP工作之类的事情。与大多数类我可以模仿的对象对它们进行测试,但你如何处理单元的测试一个真正的系统?例如,如果我的班上去并得到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'.

其他提示

最简单的方法测试的东西都很难模拟是重构中的代码的方式,代码(逻辑这是值得测试)是在一个地方和其他东西,你的代码使用中的单独模块(s)。该模块是很容易模仿这种方式可以专注于自己的业务逻辑。

您可以创建一个"测试桩",代替核心的图书馆程序和返回的已知数值,或许在适当的延迟。

例如,最近,我需要制定代码的内部运行一个第3方的产品。我们面临的挑战是,我们的"合作伙伴"会做的汇编和整合他们的基码:我不允许 看看 他们的代码,在任何形式!我的战略是建立一个非常简单的程序,做了什么我 他们的代码有没有,根据信息从他们的工程师。我们使用的语言,使得它很容易开关各条的仿真程序和各建立,所以我可以做大量的测试之前,在涉及我们的合作伙伴建立的每一个新的迭代。

我会使用相同的方法再次,如软件的问题,在该特定产品是大约一个数量级,有少于在我们的下一次最可靠的产品!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top