gpt4 book ai didi

wcf - 如何对 WCF 服务器/客户端进行单元测试?

转载 作者:行者123 更新时间:2023-12-03 06:37:13 24 4
gpt4 key购买 nike

我有一个 WCF 服务器,它是一个库程序集。 (我编写它是为了可以模拟它下面的级别)它称为 var ,是位于不同程序集中的客户端帮助器类。由于传输的数据很复杂,并且服务器必须向客户端发送回调,因此我希望单独测试WCF 代码

(我只对 TCP channel 或 NamePipe channel 感兴趣)

我不想 mock WCF,因为我试图控制的风险是我对 WCF 的使用。

有一个简单的方法

  • 将我的 WCF 服务器加载到不同的应用程序域
    (我可以将 WCF 服务器加载到主应用程序域中,但随后我很难证明对象已正确序列化,而不仅仅是指针移动。)
  • 设置所有 WCF 配置,以便客户端类可以调用它(最有可能是命名管道或 TCP)
  • 并在一些 nunit 测试中使用它
  • 我不想根据配置文件进行单元测试。

我期望(希望)有一些用于设置 WCF 单元测试的实用程序类,我可以将服务器类的类型传递给它们,并返回一个连接到的客户端工厂服务器。

我的处理方式是否错误,例如,有更好的方法来测试我的通信层和 WCF 的使用吗?

最佳答案

如果您在进程内启动服务,这是迄今为止最简单的方法,因为这样您就不需要编写大量复杂的同步代码来确定服务何时运行以及何时不运行。

不必担心指针的传递 - 它们不会(除非您在 WCF 4 中选择新的进程内绑定(bind))。绑定(bind)决定了对象如何以及是否被序列化。命名管道非常适合此目的。

我总是在 using 语句中的每个测试用例中启动一个新的 ServiceHost,这有效地保证了主机在调用它之前正在运行,并且在每次调用之后它都正确关闭测试。最后一部分很重要,因为它确保了测试独立性。

您可能还想查看a series of blog posts我写过一个非常相似的主题。

关于wcf - 如何对 WCF 服务器/客户端进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com