当前位置: 首页 > 面试题库 >

在ASP.NET MVC中进行测试时如何访问JsonResult数据

施超
2023-03-14
问题内容

我在C#mvc控制器中有以下代码:

[HttpPost]
    public ActionResult Delete(string runId)
    {
        if (runId == "" || runId == null)
        {
            return this.Json(new { error = "Null or empty params" });
        }
        try
        {
            int userId = (int)Session["UserId"];
            int run = Convert.ToInt32(runId);

            CloudMgr cloud = new CloudMgr(Session);
            cloud.DeleteRun(userId, run);

            return this.Json(new { success = true });
        }
        catch (Exception ex)
        {
            return this.Json(new { error = ex.ToString() });
        }
    }

如何在ControllerTest中访问我的Json“错误”字段以检查其是否为null?

[TestMethod]
    public void DeleteWrongParam()
    {
        WhatIfController controller = new WhatIfController();
        controller.ControllerContext = 
        TestUtils.CreateMockSessionControllerContext().Object as ControllerContext;

        JsonResult result = controller.DeleteWhatIf(null) as JsonResult;

Assert.IsNotNull(result.Data.error);是我想做的。有任何想法吗?谢谢。


问题答案:

您可以这样使用-
结果将是预期的对象定义。因此,在成功的情况下,您的成功标志将为TRUE,否则为false,如果为false,那么您应该期望error属性将随错误消息更新。

        JsonResult jsonResult = oemController.List() as JsonResult;
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        Result result = serializer.Deserialize<Result>(serializer.Serialize(jsonResult.Data));

        public class Result 
        {
            public bool success ;
            public string error;
        }


 类似资料:
  • 问题内容: 根据测试运行的总体测试结果,我要执行条件拆卸。这意味着必须在执行完所有测试之后但离开测试运行程序之前,才能访问总体测试结果。我该如何实现? 问题答案: 我找不到合适的pytest挂钩来访问总体测试结果。 你不需要一个 自己收集测试结果。这是我需要批量访问测试结果时通常使用的蓝图: 现在所有测试结果都存储在dict下;用法示例: 运行测试将产生: 编辑: 如果总体退出代码()是足够的信息

  • 问题内容: 如果我有这样的控制器: 基本上,我从存储库中获取东西,然后将其投影到匿名类型中。 如何进行单元测试? 有一个名为的属性,但它的类型与我们预期的一样。 这是否意味着如果我想测试JSON对象是否具有我期望的属性(“ id”,“ name”,“ type”),我是否必须使用反射? 编辑: 这是我的测试: 但是我在循环中收到一个运行时错误,指出“对象不包含id的定义”。 当我将断点定义为匿名类

  • 我在时区面临一个问题。现在我正在从客户端保存时区,并将所有日期时间存储在UTC中。它工作正常,但当我试图将UTC的日期时间转换为CST、EST、EDT等时区后,它会显示错误的数据。 问题-假设我在美国东部夏令时晚上10点做了任何任务,并且它将在凌晨2点(按照UTC)保存在DB中,但当我尝试获取一天的数据并通过当前UTC日期时。 我的问题是,如果我试图获取一天的数据,比如从美国东部时间午夜11点到当

  • 问题内容: 如何进行F检验以检查Python中两个向量的方差是否相等? 例如,如果我有 是否有类似的东西 我发现 但这似乎与F检验有所不同 问题答案: 方差相等的检验统计量F检验很简单: 哪里分布为 您在问题中提到的方法具有CDF方法。这意味着您可以为给定的统计信息生成一个p值,并测试该p值是否大于您选择的alpha级别。 从而: 请注意,F检验对X和Y的非正态性极为敏感,因此,除非您有理由确定X

  • 问题内容: 该赛普拉斯文档说可以 公开数据存储区(例如Redux中的数据存储区),以便您可以通过编程方式直接从测试代码中更改应用程序的状态。 我还观看了Kent C. Dodds先生的测试课程,他提到可以使用Cypress中的现有数据来初始化redux存储(在测试之前或之中,不确定) 我浏览了几乎所有的文档并进行了谷歌搜索,除了在介绍页面上将其作为关键区别之一外,我只是找不到任何实际执行此操作的参

  • 我有个测试: 当我删除子句并添加一个包含的依赖项(作为库)时,它可以工作: 当我添加它们时(中的Maven依赖项和),IDEA中的编译失败,出现以下消息: 但是Maven build仍然成功! 测试项目可在https://github.com/rpuch/test-resource-jdk9获得