我有一个 NUnit 异步测试,返回类型为 Task,但我收到错误,并非所有代码路径都返回值

问题描述 投票:0回答:1

snapshot of error msg

 [Test]
 public async Task AddColumnAsync_ShouldReturnTrue_WhenColumnIsAddedSuccessfully()
 {
 // Arrange
 var column = new Column { Id = 1, Name = "To Do" };

 // Act
 var result = await _columnRepository.AddColumnAsync(column);

 // Assert
 Assert.That(result, Is.True);
 var columnFromDb = await _context.Columns.FindAsync(1);
 Assert.That(columnFromDb, Is.Not.Null);
 Assert.That(columnFromDb.Name, Is.EqualTo("To Do"));

}

我尝试将返回类型设置为 void,但错误是“异步测试方法必须具有非 void 返回类型”

我添加了一个快照,让您了解错误消息

c# unit-testing asynchronous task nunit
1个回答
0
投票

这个建议完全正确。每个

async
方法都应该返回
Task
对象。

正如我所见,您已经将

Task
定义为返回类型,但如果该建议仍然存在,则意味着您必须引用不同的类(来自其他命名空间)。

要调试它,请尝试使用完全限定的命名空间指定返回类型,如下所示:

public async System.Threading.Tasks.Task AddColumnAsync_ShouldReturnTrue_WhenColumnIsAddedSuccessfully()

您可以尝试右键单击您的

Task
类型并转到类型定义以查看它来自哪里:)

© www.soinside.com 2019 - 2024. All rights reserved.