Почему бы не создать клиента в своем тесте удаления клиента?
[TestMethod]
public void CreateCustomer()
{
// Create a new customer and store the customer id
var customerID = CreateNewCustomer();
Assert.IsNotNull(...);
}
[TestMethod]
public void DeleteCustomer()
{
// Delete the customer created before
var customerID = CreateNewCustomer();
var ok = DeleteCustomer(customerID);
Assert.IsNotNull(...);
}
или просто создать клиента в настройке testfixture:
(Имя TestFixtureSetUp может отличаться вТестовая среда VS, это то, что она называется в NUnit, но будет эквивалент)
private Guid CustomerID;
[TestFixtureSetUp]
{
**EDIT** you could ensure you DB is clean here:
CleanDB();
CustomerID = CreateNewCustomer();
}
[TestMethod]
public void CreateCustomer()
{
// check previously created customer
Assert.IsNotNull(...);
}
[TestMethod]
public void DeleteCustomer()
{
// Delete the customer created before
var ok = DeleteCustomer(CustomerID);
Assert.IsNotNull(...);
}
[TestFixtureTearDown]
{
**EDIT** or you could ensure you DB is clean here:
CleanDB();
}
На мой взгляд, первое решение лучше, поскольку каждый тест отвечает за создание своих собственных данных, но еслиэто интеграционный тест, который на самом деле помещает материал в базу данных и из нее, тогда (опять же, на мой взгляд) вполне нормально иметь данные, необходимые для всех тестов, которые необходимо выполнить в настройке для этого класса, и тогда все тесты могут выполняться ожидаемым образом.данные будут там.Тем не менее, вы должны убедиться, что у каждого тестового класса есть соответствующий тестовый набор, который удалит тестовые данные этих классов из БД, или что вы очищаете БД где-то перед запуском каждого тестового класса (как в общем базовом классе)