【问题标题】:How to mock web service call in a WF workflow?如何在 WF 工作流中模拟 Web 服务调用?
【发布时间】:2010-08-05 06:48:42
【问题描述】:

我正在实现一个基于 WF 的 WCF Web 服务。此 Web 服务使用我不负责的其他 Web 服务。所以基本上我的服务工作流程包含几个发送活动。

我正在遵循 TDD 方法,因此服务实现将包含在单元测试中。我想测试第三方服务的正确调用。

在非工作流情况下,我将通过 NMock 模拟外部服务。但在我的情况下,我无法控制工作流实例的实例化,而且我不知道如何欺骗 Send 活动以使用模拟对象而不是真实的服务端点。

虽然 MSDN 上的 Unit Testing Workflows And Activities 文章提到了模拟,但我找不到任何模拟远程发送活动的完整示例。

你知道怎么做吗?

【问题讨论】:

    标签: wcf web-services unit-testing mocking workflow-foundation


    【解决方案1】:

    请尝试 Moles 框架。 http://research.microsoft.com/en-us/projects/pex/

    有一些关于如何模拟 sharepoint 服务的示例。我相信同样的技巧应该适用于 WF 工作流程。

    我尝试模拟 sqlconnection、实体框架、Web 服务调用,它工作得非常整洁。基本上,它可以模拟几乎任何 .net 对象。

    【讨论】:

      【解决方案2】:

      为您的 Web 服务使用 ServiceAgents 包装器是一种可行的方法。

      这是我在以前的项目中遵循的模式。

      由于它们是基于接口的,您可以轻松地模拟服务。

      这种模式还有其他优点(除了单元测试),包括能够在一定程度上将您的应用程序从外部依赖项中抽象出来。但是,它确实增加了在服务之上创建另一个类层的开销。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-28
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        相关资源
        最近更新 更多