2014-02-21 3 views
3

Как один блок тестирует объект или коллекцию - в частности, пакет JSON? Вы просто проверяете его структуру, пары ключей/значений? независимо от значений?примеры методов модульного тестирования, которые должны возвращать JSON

Создать пустую коллекцию? и сравнить? Тот же вопрос относится к любому сложному объекту (запрос, структура, массив и т. Д.)

Любая помощь с помощью реальных примеров будет принята с благодарностью.

  • Im просто начать работу с TDD, и используя MXUnit ... Im действительно не совсем уверен, с чего начать ... Вот пример одного основного теста,

    // Arrange 
        // obj set up - handled in "setup" 
    
    // Act 
        var expect = 1;   
        var result = obj.getPersonByID(); 
        debug(result); // throws data back to the tester for display 
    
    // Assert 
        assertEqual(expect, result, 'Expected #expect#, got #result#.'); 
    
+0

Что важно от вашей функции, это содержимое JSON, или просто тот факт, что вы получаете обратно пакет JSON? Если первый, вы могли бы использовать deserializeJSON(), чтобы преобразовать его обратно в структуру CF, которая затем будет легче протестировать (например, проверка всех ожидаемых ключей присутствует) – duncan

+1

То, как я тестирую это, НЕ установить 'returnFormat' в определении функции и протестируйте ее так же, как и любой другой код. Если вам нужен JSON для определенного элемента, просто добавьте 'returnFormat = json' в строку запроса при непосредственном доступе к методу CFC. Если вы используете фреймворк, вы можете создать процесс, который генерирует JSON для вас. –

+0

RE: Комментарий Дункана. Могу ли я написать отдельный тест для КАЖДОГО ключа? Какое маленькое чтение я сделал, это похоже на предписанный путь ... «одно» утверждение за тест, и это путь, к которому я склоняюсь. пожалуйста, взвешивайте, если есть аргументы для/против. – jpmyob

ответ

Смежные вопросы