gpt4 book ai didi

c# - 如何从[TestMethod]调用异步?

转载 作者:行者123 更新时间:2023-12-02 09:05:39 46 4
gpt4 key购买 nike

我在 WebAPI MVC 项目中有一个相当复杂的方法。它可以做很多事情,包括访问远程服务器进行用户身份验证。根据此结果,它返回一个重定向(页面)、一条字符串错误消息或一个表示所有身份验证猴子业务的对象。

从浏览器调用时效果很好。它甚至在调试中也能正常工作。我什至可以编写一个重定向并“手动”调用它,传递它需要的任何参数。

我遇到的问题是从我创建 WebAPI 项目时创建的测试项目 VS 调用它。我怀疑这是因为所有的 asyncawait 被抛出。当它进入它时,最终会返回“对象未设置为对象的实例”错误。

由于它可以在任何其他上下文中工作,我认为这是因为它位于测试项目内部并且需要等待。有人可以给我任何建议吗?

编辑:非常具体,这里的第二行代码失败了:

BoxConfig boxConfig = new BoxConfig(ClientID, ClientSecret, enterpriseID, prvt, JWTPublicKeyPass, JWTPublicKeyID);
BoxJWTAuth boxJWT = new BoxJWTAuth(boxConfig); //This is a JSON web token and is needed to authorize the enterprise level app user.

代码上下文:

这是利用 Box.com API。 BoxJWT 调用创建 JSON Web token 。我不知道在这个过程中哪里失败了,因为当我跟踪它时,它无法向我显示 PEMReader.cs 等内容的代码(这与加密货币、充气城堡有关)。但非常具体的是,错误消息详细信息表明源是 Box.V2.JWTAuth.PEMPasswordFinder.GetPassword()

最佳答案

每当我创建一个要测试异步代码的测试方法时,我都会确保测试方法的签名是异步并返回任务。这使您可以避免来自 async void 的可怕死锁。现在您可以在测试方法中等待。

更多信息:https://msdn.microsoft.com/en-us/magazine/dn818493.aspx

示例:

[TestMethod]
public async Task myTestMethod()
{
await MyMethodToTest();
}

关于c# - 如何从[TestMethod]调用异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36164826/

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