Как я могу написать тест для проверки и обработки ошибки синтаксического анализа JSON в nodejs - PullRequest
0 голосов
/ 05 июня 2019

Я извлекаю данные JSON из файла типа JSON для тестов, используя приведенный ниже код в моем файле test.js

var data;

  before(function(done) {
    data = JSON.parse(fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8'));
    done();
  });

Как мне написать тест для проверки и проверки ошибки синтаксического анализа JSON с помощью assertили мокко?Я хочу, чтобы тест подтвердил / подтвердил, что при синтаксическом анализе JSON не было ошибок.

1 Ответ

0 голосов
/ 05 июня 2019

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

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

Принимая это во вниманиеВы можете прочитать необработанные данные вашего json-файла в хуке before (поскольку эта часть является настройкой теста), а затем записать синтаксический анализ строки json в тесте:

var rawData;

before(function() {
    // No need to use 'done' since we are performing a synchronous task
    rawData = fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8');
});

it('should correctly parse the json', function() {
    var data = JSON.parse(rawData);

    // Your expectations about data would be placed here.
});

Чтобы оправдать ожидания, вы можете использовать любую библиотеку утверждений, которую вы хотите , и вам следует убедиться, что data имеет свойства и значения, которые присутствуют в вашем файле 'path / to / data.json'.

Например, если вы используете библиотеку chai для утверждений и ваш файл data.json содержит:

{ key1: 'value1', key2: 'value2' }

, вы можете написать утверждение:

it('should correctly parse the json', function() {
    var data = JSON.parse(rawData);

    // Your expectations about data would be placed here.
    expect(data).to.deep.equal({ key1: 'value1', key2: 'value2' });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...