Базы данных поблочного тестирования

Самый простой способ вычислить правильное перемещение мыши или позицию перемещения мыши на событии холста - использовать это небольшое уравнение:

canvas.addEventListener('click', event =>
{
    let bound = canvas.getBoundingClientRect();

    let x = event.clientX - bound.left - canvas.clientLeft;
    let y = event.clientY - bound.top - canvas.clientTop;

    context.fillRect(x, y, 16, 16);
});

Если холст имеет padding-left или padding-top, вычесть x и y через:

x -= parseFloat(style['padding-left'].replace('px')); y -= parseFloat(style['padding-top'].replace('px'));

32
задан George Stocker 17 June 2013 в 11:44
поделиться

8 ответов

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

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

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

25
ответ дан 27 November 2019 в 20:49
поделиться

DBunit

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

11
ответ дан 27 November 2019 в 20:49
поделиться

Обычное решение внешних зависимостей в модульных тестах состоит в том, чтобы использовать фиктивные объекты - который должен сказать, библиотеки, которые подражают поведению реальных, против которых Вы тестируете. Это не всегда просто, и иногда требует некоторой изобретательности, но существует несколько пользы (бесплатное программное обеспечение) ложные библиотеки там для .NET, если Вы не хотите к "самокрутке". Два сразу приходят на ум:

Насмешки Носорога являются той, которая имеет довольно хорошую репутацию.

NMock - другой.

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

насмешки базы данных In, это означает "дразнить" Ваш собственный слой доступа DB с объектами, которые возвращают составленную таблицу, строку или объекты набора данных, чтобы Ваши модульные тесты имели дело с.

, Где я работаю, мы обычно делаем нашу собственную насмешку, освобождает с нуля, но это не означает, что Вы имеете к.

5
ответ дан 27 November 2019 в 20:49
поделиться

Да, необходимо осуществить рефакторинг код для доступа к Репозиториям и Сервисам, которые получают доступ к базе данных, и можно затем дразнить или заблокировать те объекты так, чтобы объект под тестом никогда не касался базы данных. Это намного быстрее, чем хранение состояния базы данных и сброса его после каждого теста!

я настоятельно рекомендую Moq как Ваша платформа насмешки. Я использовал Насмешки Носорога и NMock. Moq был так прост и решил все проблемы, которые я имел с другими платформами.

4
ответ дан 27 November 2019 в 20:49
поделиться

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

я также нахожу, что базовое определение поблочного тестирования бедные, подходящие для большого количества операций веб-разработки. Но эта страница описывает еще некоторые 'усовершенствованные' модели поблочного тестирования и может помочь вдохновить некоторые идеи для применения поблочного тестирования в различных ситуациях:

Шаблоны Модульного теста

2
ответ дан 27 November 2019 в 20:49
поделиться

Я объяснил технику, которую я использовал для этой самой ситуации здесь .

основная идея состоит в том, чтобы тренироваться, каждый метод в Вашем DAL - утверждают Ваши результаты - и когда каждый тест завершен, откат, таким образом, Ваша база данных является чистой (никакой спам/данные тестирования).

единственная проблема, которую Вы не могли бы найти "большим", - то, что я обычно делаю весь тест CRUD (не чистый с точки зрения поблочного тестирования), но этот интеграционный тест позволяет Вам видеть свой CRUD + отображающий код в действии. Таким образом, если это повреждает Вас, будет знать, прежде чем Вы разожжете приложение (сохраняет меня тонна работы, когда я пытаюсь пойти быстро)

2
ответ дан 27 November 2019 в 20:49
поделиться

То, что необходимо сделать, запущено тесты из пустой копии базы данных, которую Вы генерируете из сценария. Можно запустить тесты и затем проанализировать данные, чтобы удостовериться, что они имеют точно, что они должны после тестового прогона. Затем Вы просто удаляете базу данных, так как это - предмет одноразового использования. Это можно все автоматизировать и можно считать атомарным действием.

1
ответ дан 27 November 2019 в 20:49
поделиться

При использовании LINQ для SQL как ORM затем, можно генерировать базу данных на лету (при условии, что у Вас есть достаточно доступа из учетной записи, используемой для поблочного тестирования). См. http://www.aaron-powell.com/blog.aspx?id=1125

0
ответ дан 27 November 2019 в 20:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: