gpt4 book ai didi

c# - MsTest类初始化和继承

转载 作者:IT王子 更新时间:2023-10-29 03:45:48 29 4
gpt4 key购买 nike

我的测试有一个基类,它按以下方式组成:

[TestClass]
public abstract class MyBaseTest
{
protected static string myField = "";

[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
// static field initialization
myField = "new value";
}
}

现在我正在尝试创建一个从基础继承的新测试,具有以下签名:

[TestClass]
public class MyTest : MyBaseTest
{
[TestMethod]
public void BaseMethod_ShouldHave_FieldInitialized()
{
Assert.IsTrue(myField == "new value");
}
}

ClassInitialize 永远不会被子测试调用...在 MsTest 上使用带有继承的测试初始化​​的真实和正确方法是什么?

最佳答案

不幸的是,您无法通过这种方式实现这一目标,因为 ClassInitializeAttribute Class不能继承。

继承的属性可以被使用它的类的子类使用。由于 ClassInitializeAttribute 不能被继承,当 MyTest 类被初始化时 MyBaseTest 类的 ClassInitialize 方法不能被继承被调用。

尝试用其他方法解决。一种效率较低的方法是在 MyTest 中再次定义 ClassInitialize 方法,并只调用基本方法而不是复制代码。

关于c# - MsTest类初始化和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944504/

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