如何使用具有某些集合属性的 Delta<Tentity> 测试 patch odata webapi 方法
How to test the patch odata webapi method with Delta<Tentity> which has some collection properties
我需要在我的测试项目中测试以下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 但这不适用于字符串列表。
我发现了我犯的错误。我没有单独设置 属性,而是发送了整个对象。
旧代码
results.TrySetPropertyValue("ResultIds", alerts);
更新代码
results.TrySetPropertyValue("ResultIds", alerts.ResultIds);
我需要在我的测试项目中测试以下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 但这不适用于字符串列表。
我发现了我犯的错误。我没有单独设置 属性,而是发送了整个对象。
旧代码
results.TrySetPropertyValue("ResultIds", alerts);
更新代码
results.TrySetPropertyValue("ResultIds", alerts.ResultIds);