Извлеките данные Json и проверьте значение с помощью транспортира - PullRequest
0 голосов
/ 23 января 2019

Мне нужно прочитать данные из файла Json и затем утверждать, что значение его ключей совпадает с некоторыми другими значениями. Ниже приведен мой пример кода:

var fs = require('fs');

let StudentData = 'StudentData.json';

describe('Test for Json Data', function (){

    let Data = {

        a: 'a',
        b: 'bb',
        c: 'ccc'
    };

    let DT = JSON.stringify(Data);

    fs.writeFileSync(StudentData ,DT)


    it('test for C', function(){

        let Uploaded_data = fs.readFileSync(StudentData);

        let Data = JSON.parse(Uploaded_data);

        let c = Data['c'];

        console.log(c);

        expect(c.toBe('ccc'));

    })

});

Когда я запускаю скрипт, я получаю следующую ошибку:

 1) Test for Json Data test for C
  Message:
    Failed: c.toBe is not a function
  Stack:
    TypeError: c.toBe is not a function

Как я могу проверить значение "c" здесь?

1 Ответ

0 голосов
/ 24 января 2019

Я согласен с @jonrsharpe, что вы должны expect(c).toBe(...).Также есть несколько других вещей, которые нужно соблюдать осторожность.Я бы поставил ваши методы, которые вы хотите выполнить, перед блоком it в методе beforeAll или beforeEach, чтобы они выполнялись перед блоком it.

Очистка его вместе с комментарием @ jonrsharpeЯ бы сделал следующее:

const fs = require('fs');
const studentData = 'StudentData.json';

describe('Test for Json Data', () => {
  const data = {
    a: 'a',
    b: 'bb',
    c: 'ccc'
  };

  beforeAll(() => {
    // make sure that you specify this in beforeAll or beforeEach
    fs.writeFileSync(studentData ,JSON.stringify(data))
  });

  it('test for C', () => {
    const uploadedData = fs.readFileSync(StudentData);
    const parsedData = JSON.parse(uploadedData);
    const c = parsedData['c'];
    console.log(c);
    expect(c)toBe('ccc'));
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...