帮助构建可测试的API客户端

时间:2010-04-09 13:08:07

标签: c# vb.net

我必须与Web API进行交互。它接受post请求并返回XML数据。它需要在客户端进行大量异步处理,以便在发生故障时可以多次重试,而不会中断主客户端进程。代码需要经过充分测试。我正在创建一个模拟版本的API来进行本地测试,并编写连接到它的单元测试。这是一个很好的测试方法吗?我是否还应该使用客户端API的版本伪造与服务器的连接并且实际上没有连接? (只返回模拟数据)

我也试图找出请求/响应类的最佳架构。我应该将响应序列化为一个类吗?应该有某种映射文件将XML字段映射到类属性?我正在考虑为每个请求提供一个请求类,它遵循一个接口。然后我可以有一个ApiRequestSender类,还有一个AsyncApiRequestSender类,它发送请求并获得响应。我唯一感到困惑的是如何获得正确类型的响应,因为有4个。

提前致谢。我希望得到一些答案,但一般来说,当我问基于架构的问题时,我没有得到任何答复:<

2 个答案:

答案 0 :(得分:1)

我认为嘲笑API是要走的路。目的是测试应用程序的客户端,而不是API是否可以连接,这对测试没有任何附加价值。

不要重新发明轮子:使用序列化而不是编写自己的映射机制。

答案 1 :(得分:1)

到目前为止绝对是一个很好的方法。

  • 模拟将帮助您完成大量案例而无需实际操作。
  • 如果可能,请检查您是否可以将API输入/输出包装到您自己的代码类中,以便您可以针对您的类和代码进行编码。不要担心会被包裹的回复状态
  • 通常,我会将其变为IServiceIRepository实施&从Web API&中抽象出您的代码使用DI容器注入模拟实现以进行测试和应用程序的真正API
  • 正如@Gerrie提到的,不要重新发明轮子,除非它是方形的:)

HTH