gpt4 book ai didi

c# - 用于多个[TestFixture]

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:54 28 4
gpt4 key购买 nike

我正在NUnit中设置测试,并且有一个新手问题。

是否有可能在多个[TestFixture]中使用的测试?

所以
[测试] ValidateString(字符串鲍勃)

可以在一系列不同的[TestFixture]中调用吗?

最佳答案

对我来说,那听起来不像是一种考验。测试通常是无参数的(除非您使用[TestCase]),并且通常在单个夹具的上下文中运行它就足够了-它要么通过一次就可以了,否则就不能通过,这是一个失败的测试。

如果您只是具有对字符串进行某种验证的方法,则可以将其设置为某个类(例如TestHelpers)上的静态方法,然后从需要它的任何测试(在多个测试装置中)进行调用。



这是另一个想法:继承。您可以拥有一个包含所有测试的基础夹具,然后从其继承的夹具设置所需的任何变量。测试将针对每个灯具进行。我对Selenium RC不熟悉,但是您应该能够修改以下代码来设置各种固定装置中需要的变量。

[TestFixture]
public class BaseFixtureTests
{
protected IMyClass _myClass;

[TestFixtureSetUp]
public void FixtureSetup()
{
_myClass = ConfigureMyClass();
}

protected virtual IMyClass ConfigureMyClass()
{
// fixtures that inherit from this will set up _myClass here as they see fit.
}

[Test]
public void MyClassTest1()
{
// test something about _myClass;
}
}

[TestFixture]
public class MySpecificFixture1 : BaseFixtureTests
{
protected override IMyClass ConfigureMyClass()
{
return new MySpecificMyClassImplementation();
}
}

public class MySpecificMyClassImplementation : IMyClass
{
//some implementation
}


您还可以在每个灯具中添加额外的测试,这些测试不会测试通用功能,也不需要在所有灯具之间重复使用。

关于c# - 用于多个[TestFixture],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557904/

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