如何使用具有某些收集属性的Delta <tentity>测试补丁odata webapi方法

时间:2018-11-20 16:22:06

标签: c# unit-testing asp.net-web-api odata asp.net-web-api-odata

我需要在测试项目中测试以下Patch方法。

    public async Task<IHttpActionResult> PatchMarkAsReadAlertResults([FromODataUri] Guid key, Delta<MarkAsReadAlertResult> result)
    {
        await AlertResultsHelper.UpdateAlertResultStatus(key, result.GetEntity(), alertResultsActionsServiceProvider, KeyEvent);
        return Updated(result);
    }

我这样写测试用例

    [TestMethod]
    public async Task AlertProfileMarkAsReadAlertResultsTest()
    {
        #region Arrange
        Guid key = Guid.Parse("e6f940d5-2ffb-4ff3-b7c1-04aa2514a37e");

        var alerts = new MarkAsReadAlertResult();

        var results = new Delta<MarkAsReadAlertResult>();

        alerts.ResultIds = new List<string>();


        alerts.ResultIds.Add("906433381");

        results.TrySetPropertyValue("ResultIds", alerts);

        IHttpActionResult result = null;
        #endregion

        #region Act
        result = await this.alertProfilesController.PatchMarkAsReadAlertResults(key, results);
        #endregion

        #region  Assert
        Assert.IsNotNull(result);
        #endregion
    }

在这里获取对象引用错误

results.TrySetPropertyValue(“ ResultIds”,警报);

不知道为什么要在这里弄错,我错过了什么吗?

我已经验证了此Testing the Patch odata webapi method,但这不是字符串列表。

1 个答案:

答案 0 :(得分:0)

我发现了我犯的错误。我没有单独设置属性,而是发送了整个对象。

旧代码

[switch setEnabled:NO];

更新代码

results.TrySetPropertyValue("ResultIds", alerts);