У меня есть несколько кодов, которые извлекают данные через linq to sql из wcf, которые абстрагируются в dll. гмм.
так что в основном мой тест включает создание некоторых записей в две таблицы, и мне нужно убедиться, что запись таблицы B имеет правильную ссылку на запись таблицы A.
так что я гуглял и нашел это предыдущее обсуждение, и метод, который выглядел довольно удивительным для меня, был тот, который использует объем транзакции.
поэтому я изменяю свой юнит-тест на:
[Test, DataRollBack]
public void TestCreateWarrantNumber_CreateNewWarrant_Return_NewWarrantID()
{
string userName = "headauth";
using (TransactionScope scope = new TransactionScope())
{
IdbRepository repository = new dbRepository();
DataServiceContext db = new DataServiceContext();
int Id = repository.CreateProduct(Ids, userName);
var foundId = (from w in db.Transactions
where w.Ref == Id.ToString()
select w).OrderBy(w => w.Id).FirstOrDefault();
int foundId = 0;
if (foundNumberId != null)
{
foundId = foundNumberId.Id;
}
Assert.AreEqual(Id, foundId,
"Transaction must be assigned successfully to the new product.");
}
}
каким-то образом каждый раз, когда я запускаю этот тест в vs2010, он не работает, и я вижу, что в моей базе данных эта запись создается в таблице продукта при каждом запуске этого теста.
Так что я думаю, что самый простой способ проверить это просто связать его с базой данных и протестировать его таким образом, но сейчас мне нужно то, как мне откатываться каждый раз, когда тест проводится?
есть идеи, что я здесь делаю не так?
спасибо
Обновление:
После включения кода неисправности я все еще не могу проверить без выполнения вставки данных в таблицу. и я попробуйте nunitx метод, но тоже безрезультатно: (