gpt4 book ai didi

c# - Async TestInitialize 保证测试失败

转载 作者:可可西里 更新时间:2023-11-01 08:04:25 25 4
gpt4 key购买 nike

在 TestInitialize 中进行异步调用是不正确的设计,因为 TestInitialize 必须在任何 TestMethod 之前发生并且具有固定的签名。

这在任何方面都可以是正确的方法来进行异步 TestInitialize 吗?

    private int val = 0;

[TestInitialize]
public async Task TestMehod1()
{
var result = await LongRunningMethod();
val = 10;
}

[TestMethod]
public void TestMehod2()
{
Assert.AreEqual(10, val);
}

有什么想法吗?

最佳答案

可能最简洁的方法是让 TestInitialize 开始 异步操作,如下所示:

[TestClass]
public class UnitTestAsync
{
private Task<int> val = null;

[TestInitialize]
public void TestInitializeMethod()
{
val = TestInitializeMethodAsync();
}

private async Task<int> TestInitializeMethodAsync()
{
return await LongRunningMethod();
}

private async Task<int> LongRunningMethod()
{
await Task.Delay(20);
return 10;
}

[TestMethod]
public async Task TestMehod2()
{
Assert.AreEqual(10, await val);
}
}

关于c# - Async TestInitialize 保证测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375130/

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