【问题标题】:How to mock IO/Network classes?如何模拟 IO/网络类?
【发布时间】:2010-09-25 11:36:13
【问题描述】:

我想知道如何模拟 IO/网络类。例如,我有一个执行 FTP 操作的类或一个写入文件的类。如何使用模拟来模拟和单元测试此类类?

我是 C#/NHibernate/Castle ActiveRecord/Rhino Mocks 开发人员。

【问题讨论】:

    标签: c# mocking rhino-mocks


    【解决方案1】:

    使用 Rhino Mocks,您只能模拟接口、抽象类(通常是虚拟方法)。因此,将您的网络访问代码抽象为接口,然后模拟它们,以便对依赖于它们的其他类进行单元测试。

    您不能对需要单独连接到 FTP 服务器的代码进行单元测试。这不再是一个单元测试,它是一个集成测试,在这里模拟对你没有帮助。

    【讨论】:

      【解决方案2】:

      对于 rhinomocks,您必须定义一个接口或抽象类,以便 rhinomocks 可以为您创建代理/模拟对象。其他模拟框架(例如 typemockJustmock,都是商业的)能够模拟非抽象类、静态类、非虚拟方法等。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 2011-01-20
        • 2013-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多