我有一个函数,可以计算一些东西并将其输入到数据库中。此设置对于所有单元测试都很重要,因为它们需要一些数据才能进行。
有时我需要“刷新”数据库,因此所有单元测试都指向错误的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:如果您知道可以做到这一点的框架,那么我切换测试框架就没有问题
答案 0 :(得分:2)
测试应该是独立的,并且通常不应在测试之间传递值。
如果所有测试都在同一个类中,您可以做的是在您的类中有一个变量来保存id和一些全局设置函数来设置所有内容并将变量设置为正确的id 。在NUnit中有[OneTimeSetUp]属性。
Anything you put between tags
is turned into a comment.