В этом примере тест должен быть организован по-другому
[Fact]
public async Task ReturnsString() {
// Arrange
const string expected = "test";
var sut = new ExampleClass();
var task = sut.GetFooAsync(); // launch tack and do not await
sut.SetFoo(expected); // set expected value after GetFooAsync is called
// Act
var actual = await task;
// Assert
Assert.Equal(expected, actual);
}
Задача может быть запущена и не может быть ожидающей, чтобы sut мог установить результат задачи.
После установки результата можно ожидать, что задание будет проверено как ожидаемое поведение