2010-08-24 49 views
2

我正在测试一个WCF服务。N-Unit测试带回调的WCF

流程是这样的。

  1. 应用程序(客户端)通过Webservice1向DB插入命令。这是使用双工模式完成的(带回调)。
  2. WebService1将命令插入到数据库中,并且此Webservice1调用另一个有关新命令到达的webservice2(双重模式)。
  3. Webservice2然后通过Webservice3读取命令,执行,插入结果并调用Webservice1上的回调方法,告诉命令执行。
  4. Webservice1然后在应用程序上调用回调方法并通知结果的到达。

我该如何测试这样的服务。

请发布任何有教程如何测试回调的链接。

感谢,

+0

通过调用回调函数并验证结果来测试回调函数。更加详细一些。你是否试图避免经历整个呼叫链? – 2010-08-24 15:13:24

+0

不,我不想避开整个电话连锁。 – Sandeep 2010-08-24 15:46:55

回答

2

你应该为单元测试单独测试服务,由他们将调用服务嘲讽的回应。通过这种方式,您可以将各项服务测试为小部分工作,并验证它们是否按预期工作。您也可以专注于每个服务的功能,而不必担心,但是,这些服务如何与真实的服务交互。

我想你所描述的更多是integration test。只有在您对上述特定服务执行了单独的单元测试后,才应该执行该测试。从本质上说:

集成测试的目的是 校验功能,性能和可靠性 要求放在 主要设计项目。

进行单元测试你的双工服务,这里是一个有据可查的博客文章介绍如何做到这一点(有很多的代码):http://blogs.msdn.com/b/ploeh/archive/2008/06/28/unit-testing-duplex-wcf-services.aspx

所以,你会创建单元测试,测试与项目互动#1和#4从你的清单(应用程序 - > ws1和ws1 - >应用程序),然后与项目#2和#3(ws1 - > ws2和ws2 - > ws1)进行交互,然后单元测试#3(ws2 - > ws3)。这最后一个你可以嘲笑。没有更多的细节,这就是我将如何开始单元测试。

我希望这会有所帮助。