Издевательские вызовы .nettiers DataRepositoryC#

Место общения программистов C#
Ответить
Anonymous
 Издевательские вызовы .nettiers DataRepository

Сообщение Anonymous »

У меня есть проект, в котором я использую код, сгенерированный .nettiers, в качестве DAL.

На данный момент мои тесты состоят из физической настройки тестовых данных в базу данных для каждого теста, а затем разрешать объектам nettiers обращаться к базе данных и возвращать их по мере необходимости.

Очевидно, что это не особенно эффективно, и на данный момент мои 250 с лишним тестов занимают бежать около 10 минут, так что у меня есть рассматривал возможность добавления макетирования в свои тесты.

Хотя я почти уверен, что понимаю концепцию макетирования вызовов базы данных, у меня возникли проблемы с применением его к сетевым приложениям. в частности, поскольку он довольно сильно связан с базой данных.

Один из методов, который я хочу протестировать, выглядит следующим образом (для краткости немного сокращен):

Код: Выделить всё

public class InterfaceManagerService
{
public DataDocument SaveDataDocument(DataDocument entity)
{
var lookupEntity = DataRepository.DataDocumentProvider.GetByDocumentId(entity.DocumentId);
if (lookupEntity == null)
{
File fileEntity = new File();
fileEntity.Name = entity.Name;

var savedFileEntity = DataRepository.FileProvider.Save(fileEntity);

entity.FileId = savedFileEntity.FileId;

var savedEntity = DataRepository.DataDocumentProvider.Save(entity);

return (savedEntity);
}
}
}
В настоящее время я использую пробную версию Typemock, поскольку она, похоже, делает то, что требуется, но я открыт для любых альтернатив, особенно с открытым исходным кодом.

Первая проблема, с которой я столкнулся, заключалась в том, следует ли мне создавать имитируемый экземпляр InterfaceManagerService, или DataRepository, или сами сущности (сущности nettiers действительно имеют интерфейс, который может быть полезным).

Вторая проблема заключается в том, как создать поддельный объект, который должен быть возвращен, поскольку nettiers помещает множество дополнительных свойств в объекты, которые в результате в больших и громоздких тестах, если я создаю поддельный экземпляр каждого ожидаемого объекта.

Думаю, в конечном итоге я ищу какое-то направление, как лучше всего писать модульные тесты для методов, использующих методы хранилища данных Nettiers, но чтобы избежать попадания базу данных, поскольку в настоящее время в Интернете о ней не так уж много информации.

Подробнее здесь: https://stackoverflow.com/questions/838 ... tory-calls
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»