【问题标题】:How to unit test a method that does automatic deserialization using MVC如何对使用 MVC 进行自动反序列化的方法进行单元测试
【发布时间】:2013-11-07 01:21:44
【问题描述】:

我有一个这样声明的方法:

public ActionResult Request(Request request)
{

该方法是使用 JavaScript 调用的,但传入的是一个字符串。反序列化会自动发生。

现在我想对它进行单元测试,模仿 JavaScript 将传入的内容,即字符串。如何使用字符串而不是请求进行单元测试?当我创建我的单元测试时,它希望我传入反序列化类型,这不是世界末日,但如果我可以复制从客户端发送的字符串请求并用它进行测试,那就太好了.

这甚至有可能......强制执行通常发生的自动反序列化吗?

  TrackController c = new TrackController();
  c.Request(jsonString);

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    将 json 反序列化为具体的模型对象实际上是 MVC 模型绑定器的职责,因此我认为不应将其包含在控制器操作的单元测试中。

    不过,我确实看到了测试您正确创建请求的一些价值,但我认为这更适合集成测试。

    您可能会直接向您的网站发出 http 请求,这将验证您是否将正确的 json 传递给您的操作。

    在此处查看更多信息: POSTing JSON to URL via WebClient in C#

    【讨论】:

      猜你喜欢
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      相关资源
      最近更新 更多