Как утверждать/модульным тест серверы ответ JSON?

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

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

Дополнительная информация: Приложение основано на JQuery, использующем REST сервисы JSON.

7
задан Jon Limjap 24 March 2010 в 03:15
поделиться

4 ответа

Я бы порекомендовал схему для ваших объектов JSON.

Я использую Kwalify , но вы также можете использовать Rx , если вам больше нравится этот синтаксис.

6
ответ дан 6 December 2019 в 15:20
поделиться

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

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

Если даже после введения тестирования на сервере вы получите недопустимый JSON, это проблема человеческого общения, а не тестов.

3
ответ дан 6 December 2019 в 15:20
поделиться

Я использовал QUnit: http://docs.jquery.com/QUnit в последнее время для большого количества моего JS кода.

asyncTest http://docs.jquery.com/QUnit/asyncTest может быть использован довольно эффективно для тестирования структуры JSON.

Example:


asyncTest("Test JSON API 1", 1, function() {
    $.getJSON("http://test.com/json", function(data) {
        equals(data.expected, "what you expected", "Found it");
    });
});
5
ответ дан 6 December 2019 в 15:20
поделиться

Поскольку ответа нет, я вставлю свои два цента.

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

Возможно, вы можете назвать эту абстракцию обменом форматов данных JSON.

Итак, при модульном тестировании графического интерфейса пользователя (надеюсь, вы выполняете TDD-тестирование своего веб-интерфейса) у вас будет имитация JSON DIF. Итак, когда придет время интегрировать серверную часть с клиентской частью * , любые изменения программного обеспечения будут внесены в реализацию уровня абстракции. И, конечно же, у вас уже есть тесты, основанные на согласованной структуре JSON.

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

* Почему это напоминает анекдот: моя задница и твое лицо могут быть близнецами.

0
ответ дан 6 December 2019 в 15:20
поделиться
Другие вопросы по тегам:

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