Как провести юнит-тест JSON в Jest NodeJS? - PullRequest
0 голосов
/ 29 февраля 2020

моя функция, которую я пытаюсь выполнить модульным тестом, определяется как

ПРИМЕЧАНИЕ : mypayload= payload.Items В конце вопроса я дам ссылку JSON

function setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload) {
      let _res = mypayload.map(ele => {
        if (ele.id == null) {
          ele.id = ele.deviceId
        }
        if (ele.id == null && ele.deviceId == null) {
          ele.id = '***Both id and device id is null***'
        }
        if (ele.ssid == null) {
          ele.ssid = '***ssid is null***'
        }
        if (ele.deviceName == null) {
          ele.deviceName = '**deviceName is null**'
        }
        return ele;
      })
      return _res
    }

Я пытаюсь проверить Most Basi c Part , который является первым, если l oop ele.id==null

Я пытался:

describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
        test('testing null', () => {
            index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
            mypayload.map(ele => {
                if (ele.id == null) {
                    expect(ele.id).toEqual(ele.deviceId)
                }
            })
        })
    })

Однако я не могу заставить этот тестовый случай провалиться, например, если я введу expect(ele.id).toEqual("random"), он все еще проходит, когда я ожидаю, что он потерпит неудачу. Очевидно, что я делаю что-то не так

Ссылка

const payload = {"Items":[
    {
    "id" :"mycompany-00b12396",
    "ssid": "home",
    "deviceName": "mydevice",
    "time": "0.753235299 Hours"
    },
    {
        "ssid": "office",
        "deviceName": "thisdevice",
        "time": "12.52115515 Hours",
        "deviceId":"mycompany-0031f13"
    }
]}

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Я пытался, и это сработало для меня, надеюсь, это поможет кому-то в будущем

describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
    test('testing null', () => {
        const result = index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
        let check = result.find(el => el.deviceId === "mycompany-00a412f");
        expect(check.id).toEqual(check.deviceId)
    })
})
0 голосов
/ 29 февраля 2020

Вы должны проверить результат функции следующим образом:

describe('Test setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty', () => {
        test('testing null', () => {
            const result = index.setIdtoDeviceIdIfEmptyAndSetNullIfFieldEmpty(mypayload)
            result.map(ele => {
                if (!ele.id) {
                    expect(ele.id).toEqual(ele.deviceId)
                }
            })
        })
    })
...