我正在为数据库操作编写一些 NUnit 测试。显然,如果 Add()
失败,则 Get()
也将失败。但是,当 Add()
和Get()
都失败时,看起来会产生两个问题而不是一个。
有没有一种方法可以指定测试运行的“顺序”,即如果第一个测试失败,则忽略后续测试?
同样,在单元测试类中是否有一种排序方式?例如,我想先运行基本数据库操作的测试,然后再运行从 UI 回传数据的测试。
注意: 这与测试之间存在依赖关系有点不同,更像是确保某些东西在运行一堆测试之前首先能工作。例如,如果您无法首先连接到数据库,则运行大量数据库操作是浪费时间的。
编辑: 看起来有些人错过了重点。我做的不是这个:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
db.Get(someData);
Assert.That(data was retrieved successfully);
}
相反,我正在这样做:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
// need some way here to ensure that db.Add() can actually be performed successfully
db.Add(someData);
db.Get(somedata);
Assert.That(data was retrieved successfully);
}
换句话说,我想确保能够首先添加数据,然后再测试是否可以检索数据。人们认为我在使用第一次测试的数据来通过第二次测试,但实际情况并非如此。我正在尝试确保在尝试依赖于它的另一个操作之前,某个操作是可行的。
正如我已经提到的,您需要确保在运行数据库操作之前可以连接到数据库。或在执行文件操作之前可以打开文件。或在测试 API 调用之前连接到服务器。或者...你懂的。