簡體   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