Подскажите пожалуйста как можно настроить тестовые данные, для того что бы протестировать Delete с помощью библиотеки Terrasoft.TestFramework?
Может у вас есть пример кода?
Спасибо.
Нравится
Александр, для создания записей, как и везде в скриптах, можно воспользоваться функциональностью классов либо 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.