gpt4 book ai didi

c# - 没有构造函数的 xunit IClassFixture

转载 作者:行者123 更新时间:2023-12-05 07:26:27 24 4
gpt4 key购买 nike

我有以下简化的伪代码

class CommonSetup
{
public void CommonSetup()
{
// do stuff once per class
}

public void Foo() { }
}

abstract class BaseTest : IClassFixture<CommonSetup>
{
public void BaseTest(CommonSetup setup)
{
setup.Foo();
}
}

class MyTest : BaseTest
{
// i dont want to have a ctor here
}

我需要访问 CommonSetup来自 BaseTest但我不想MyTest有一个构造函数才能通过 CommonSetup一直到它,因为它是毫无意义的样板噪音。

是否有不同的语法/机制来实现与 IClassFixture<> 相同的效果?无需使用构造函数来传递 CommonSetup周围?

最佳答案

在我看来,可以创建一个静态字段来避免创建新对象并在所有派生类之间共享实例。

让我举个例子:

class CommonSetup
{
public CommonSetup()
{
// do stuff once per class
}

public void Foo() { }
}

和:

abstract class BaseTest : IClassFixture<CommonSetup>
{
protected static CommonSetup _commonSetup = new CommonSetup();

public BaseTest()
{
_commonSetup.Foo();
}
}

并且您的派生类不希望构造函数为 BaseTest 类发送参数:

class MyTest : BaseTest
{
// There is no need to have constructor to initialize `BaseTest` constructor
}

关于c# - 没有构造函数的 xunit IClassFixture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54294955/

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