繁体   English   中英

NUnit 3.XX异步测试

[英]NUnit 3.X.X async test

我正在尝试使用NUnit 3.12.0.0对异步任务进行单元测试。 问题是我不断收到以下消息:消息: 当预期没有结果且测试失败时,异步测试方法必须具有非通用的任务返回类型 下面的代码实际上与Visual Studio 2017和较旧版本的nUnit一起使用。

据我了解,新的nUnit框架需要返回TaskTask<T>

这是我的测试功能

[Test]
public async Task<string> Login()
{
    var url = "http://localhost:xxxx/login";
    object[] jsonBody = { "{\"username\":\"devTeam@xxxxxxxxx.com\",\"password\":\"xxxx\"}" };

    RestRequestResponse<RestResponse> result = await HttpRestUtil.ExecuteCompleteRestRequest<RestResponse>(url, null, jsonBody, Method.POST);
    Assert.IsNotNull(result);
    Assert.IsNotNull(result.headers[0].Value.ToString());
    return result.headers[0].Value.ToString();
}

我找到了我问题的答案。 答案来自NUnit文档,其中指出以下内容:

面向.Net 4.0或更高版本的测试方法可能被标记为异步,并且NUnit将在记录结果并进行下一个测试之前等待该方法完成。 如果没有返回值,则异步测试方法必须返回Task;如果返回类型T的值,则异步测试方法必须返回Task。

如果测试方法返回值,则必须将ExpectedResult命名参数传递给Test属性。 将检查此预期的返回值是否与测试方法的返回值相等。

这是一个例子:

// Async test with an expected result
[Test(ExpectedResult = 4)]
public async Task<int> TestAdd()
{
    await ...
    return 2 + 2;
}


// A simple async test
[Test]
public async Task AddAsync()
{ /* ... */ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM