2

私はmvc.net c#でコントローラーのこのアクションを持っています

public ContentResult GetVariableMapKml(string variableId, string sitesIds, string beginDate, string endDate, int limit)
    {
        Object resultData = null;
        // Prepare specific Json configuration
        var serializer = new JavaScriptSerializer();

        if (variableId != null && variableId != "")
        {
           ...
            if (valuesList != null)
            {
                resultData = new
                {
                    Values = valuesList,
                    Units = varUnits
                };
            }
            else
            {
               resultData = new
               {
                   Error = "Error at GetVariableMapKml() method: Null params"
               };
            }

        }

        var result = new ContentResult
        {
            Content = serializer.Serialize(resultData),
            ContentType = "application/json"
        };

        return result;
    }

C で単体テストを行っていますが、ContentResult の結果にアクセスして、変数 Error が null かどうかを確認する必要があります。

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

        //param null
        ContentResult result = controller.GetVariableMapKml(null, null, "05/05/2001", 
                                                            "02/10/2012", 100);
        Assert.IsNotNull("Error");
    }

エラー コンテンツにアクセスして、このコンテンツが null かどうかを確認するにはどうすればよいですか? ありがとうございました。

4

1 に答える 1

2

あなたはこのようにすることができます

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

        //param null
        ContentResult result = controller.GetVariableMapKml(null, null, "05/05/2001",
                                                            "02/10/2012", 100);

        var returnedObject = (Dictionary<string, object>)(new JavaScriptSerializer()).DeserializeObject(result.Content);

        Assert.IsTrue(returnedObject.ContainsKey("Error"));

    }

キーとその値の存在について辞書オブジェクトをテストできます

于 2013-07-02T07:46:33.690 に答える