有没有办法将值从单元测试发送到另一个单元测试?

时间:2018-06-26 10:41:50

标签: c# nunit

我有一个函数,可以计算一些东西并将其输入到数据库中。此设置对于所有单元测试都很重要,因为它们需要一些数据才能进行。

有时我需要“刷新”数据库,因此所有单元测试都指向错误的ID。

通常我只是先运行安装程序,然后更改所有单元测试,但这要花很长时间。 是否可以自动执行此操作?

我想将生成的ID传递给其他单元测试。

所以这个主意是这样的:

[SetupFixture]
public class{
    [Test]
    public void SetupDB(){
        setup();

        //now marking the result somehow so other tests can pick the result up
        return ID; //<--
    }
}

public class OtherTests{
    [Test]
    [Get_ID_From_SetupDB]
    public void testBaseOnID(int ID){
        //we do stuff now with ID
    }
}

PS:如果您知道可以做到这一点的框架,那么我切换测试框架就没有问题

1 个答案:

答案 0 :(得分:2)

测试应该是独立的,并且通常不应在测试之间传递值。

如果所有测试都在同一个类中,您可以做的是在您的类中有一个变量来保存id和一些全局设置函数来设置所有内容并将变量设置为正确的id 。在NUnit中有[OneTimeSetUp]属性。

Anything you put between  tags
is turned into a comment.