Подскажите пожалуйста как можно настроить тестовые данные, для того что бы протестировать Delete с помощью библиотеки Terrasoft.TestFramework?

Может у вас есть пример кода?
Спасибо.

Нравится

5 комментариев

Александр, для создания записей, как и везде в скриптах, можно воспользоваться функциональностью классов либо Entity, либо Insert, иногда используют их совместно, как в функциях, которые применялась для подготовки тестирования работоспособности Delete в ядре:

  public static void CreateSchemaDataInDB(UserConnection userConnection, EntitySchema entitySchema,
    params object[] values) {
   Entity entity = entitySchema.CreateEntity(userConnection);
   int columnIndex = 0;
   foreach (object value in values) {
    entity.SetColumnValue(entitySchema.Columns[columnIndex++], value);
   }
   var insert = entity.CreateInsert();
   insert.Execute();
  }
 
  public static void CreateSchemaDataInDB(UserConnection userConnection, EntitySchema entitySchema,
    TestData testData) {
   var inserts = new Collection<Insert>();
   foreach (var dataRow in testData) {
    Entity entity = entitySchema.CreateEntity(userConnection);
    foreach (TestDataColumnValue dataColumn in dataRow) {
     entity.SetColumnValue(dataColumn.GetColumnValueName(), dataColumn.Value);
    }
    inserts.Add(entity.CreateInsert());
   }
   using (DBExecutor dbExecutor = userConnection.EnsureDBConnection()) {
    foreach (Insert item in inserts) {
     item.Execute(dbExecutor);
    }
   }
  }

Но конкретная реализация зависит от того, что Вы хотите создавать и удалять в ходе своего теста.

Зверев Александр,

А возможно не создавать реально данные в базе? а использовать какое-то темповое хранилище?? Или что бы проверить Delete мне необходимо создавать реальные данные в базе?? и Как в таком случае в тестах инициализировать UserConnection?

Спасибо.

В этой теме есть примеры как имитации данных в базе, так и с формированием реальных запросов, но без их запуска, со сравнением полученного SQL-кода. Там тестируют Select, можно так и с Delete.

Зверев Александр,

 

Я видел эту тему, но код который используется в нем у меня не компилируется так как не видно некоторых типов

TestDBTypeConverter
TestData
TestData testData = UnitTestUtilities.GetTestDataWithStructure(entitySchemaManager, "Activity");

Не могу понять какую библиотеку нужно подключить для корректной работы??

у меня версия системы 7.12.2

 

В 7.12 уже должны работать примеры из этой статьи, там есть ссылка на исходники SDK.

Показать все комментарии