gpt4 book ai didi

c# - 测试 Patch odata webapi 方法

转载 作者:行者123 更新时间:2023-11-30 13:26:23 25 4
gpt4 key购买 nike

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

[ValidateModel]
[AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<User> patch)
{
var user = await db.Users.FindAsync(key);
if (user == null)
{
return NotFound();
}

patch.Patch(user);

Validate(user);

if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}

try
{
db.Entry(user).Property(p => p.UserType).IsModified = false;
await db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!UserExists(key))
{
return NotFound();
}
throw;
}

return Updated(user);
}

测试工程中的代码如下。谁能告诉我如何将值传递给 Delta 参数。目前我在 controller.Patch(1, user); 行遇到编译错误。

[TestMethod]
public void TestPatch()
{
// Arrange
var controller = new UsersController();

var user = new User();
user.Id = 1;
user.Lastname = "Johanson";
// Act
controller.Patch(1, <System.Web.OData.Delta> user);

// Assert
}

最佳答案

您也可以使用 dynamic 关键字声明增量并直接设置属性:

dynamic delta = new Delta<User>();
delta.Id = 1;
delta.Lastname = "Johanson";

关于c# - 测试 Patch odata webapi 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com