Вы можете использовать Array.prototype.sort
с простой функцией sort
, в которой вы анализируете значение title
каждого объекта в массиве как int и сравниваете. Примерно так:
var arr = [{
"title": "1-Introduction"
},
{
"title": "5-Introduction"
},
{
"title": "20-Introduction"
},
{
"title": "4-Introduction"
}
];
arr.sort(function(a, b) {
const aVal = parseInt(a.title.split("-")[0]);
const bVal = parseInt(b.title.split("-")[0]);
return aVal - bVal;
});
console.log(arr);
Сохраненный procs тестирования потребует, чтобы у каждого человека, который тестирует, был отдельный экземпляр дб. Это - требование. При совместном использовании сред, Вы не сможете положиться на результаты своего теста. Они будут бесполезны.
Необходимо будет также удостовериться, чтобы Вы откатывали дб к, он - предыдущее состояние после каждого теста, чтобы сделать результаты предсказуемыми и стабильными. Из-за этой потребности откатывать состояние после каждого теста эти тесты возьмут намного дольше для завершения, чем стандартные модульные тесты, таким образом, они, вероятно, будут чем-то, что Вы хотите работать на основе ночи.
Существует несколько инструментов там для помощи Вам с этим. DbUnit является одним из них, и я также полагаю, что Microsoft имела инструмент Visual Studio for Database Professionals, который содержал некоторую поддержку тестирования DB.
Вот некоторые инструкции:
Посмотрите ссылку ниже для метода Транзакции Enterprises Services:
http://weblogs.asp.net/rosherove/articles/DbUnitTesting.aspx
Как часть нашей непрерывной интеграции, мы выполняем нашу ночную 'сборку' запросов базы данных. Это включает комплект вызовов DB, которые регулярно обновляются от реальных вызовов в коде, а также любых ожидаемых специальных запросах.
Эти вызовы синхронизированы, чтобы гарантировать что:
1/Они не занимают слишком много времени.
2/Они не отличаются дико (плохим способом) с предыдущей ночи.
Таким образом мы ловим ошибочные запросы, или DB изменяется быстро.
Планировщик запроса является Вашим другом особенно в этом случае. Это всегда - хорошая практика для проверки, чтобы видеть, что индексы используются, когда Вы ожидаете, что они будут и что запрос не требует, чтобы дополнительная работа была сделана. Даже если Вам включали стресс-тесты в Ваш комплект, это - все еще хорошая идея поймать дорогие запросы, прежде чем Ваше приложение начнет прекращать работу.
Нам откладывали пустую базу данных для каждого разработчика и тестера.
Когда тесты запущены - каждый тест очищает базу данных и загружает данные, которые это ожидает использовать. Это дает нам известное состояние в любом случае.
Мы можем затем протестировать несколько различных сценариев на том же DB (один за другим), и мы никогда не штампуем на другом пальцы ног тестеров.
Это покрывает тестирование самого доступа к данным. Для эксплуатационного испытания мы делаем почти такую же вещь, но мы тестируем внутреннюю часть сервиса только - мы на самом деле не поражаем сервис, мы создаем экземпляр сервиса, обрабатывающего класс, и передаем во всем, в чем мы нуждаемся. Тем путем мы тестируем код а не инфраструктуру (сообщение и т.д.)
SQLServerCentral имеет статью здесь (Вам, вероятно, придется зарегистрироваться, но это свободно и без строк) о Платформе Поблочного тестирования TSQL, названной tsqlUnit. Это - открытый исходный код и следует вперед в традиции xUnit платформы.
Это следует за МЕСТОМ шаблон TDD:
Установка - готовит условия испытания путем управления объектами, таблицами и/или данными
Осуществление - вызывает производственный код
Утверждайте - проверяют, что фактический результат равняется ожидаемому результату
Разрушение - возвращает все назад способу, которым это было перед запущенным тестом. Это на самом деле сделано путем Отката транзакции, которая сохраняет все хорошим и опрятным.
Хотя я не использовал его, это выглядит многообещающим и является, конечно, чем-то, на что я буду смотреть более подробно.
Платформа может быть загружена здесь.
Django предлагает возможность модульного теста базы данных. Можно одолжить их дизайнерские идеи и воспроизвести его в других средах.
Люди Django предлагают подкласс стандарта Python unittest TestCase
класс, который заполняет базу данных с известным приспособлением - известный набор строк данных.
В случае Django (и Python) является самым легким заполнить базу данных из извлечения данных JSON. Другие форматы файлов для приспособления могут использоваться для других платформ. Например, если Вы работаете в Oracle, Вы могли бы найти файлы CSV легче работать с.
Это TestCase
подкласс позволяет писать типично выглядящий TestCase, который осуществляет базу данных с известным приспособлением данных.
Кроме того, исполнитель тестов Django создает временную схему в тестовых целях. Это легко для Django, потому что у них есть полный объектно-реляционный компонент управления, который включает создание DDL. Если Вы не будете иметь это в наличии, то Вам все еще будет нужен сценарий DDL, таким образом, можно будет создать и избавиться от тестовой схемы в unittest целях.
Я нахожу полезным протестировать SQL, отправляемый вниз в базу данных, а не результат запросов базы данных.
Не то, чтобы я не делаю позже, но я нахожу, что он намного быстрее тестирует на это, чем наличие базы данных слишком много подъема.