Как использовать Jasmine для проверки измененного массива с помощью обещаний? - PullRequest
0 голосов
/ 30 сентября 2019

Я использую fs.readFile, чтобы прочитать еще один из моих файлов. Для экземпляров слов в моем массиве значений, которые также присутствуют в упомянутом другом файле, я бы добавил слово «true» (это то, что (data.include (value [i])) выводит) в мой массив testData. Затем я хочупроверить, что testData на самом деле содержит слово 'true'

Я очень новичок в изучении обещаний, обратных вызовов и асинхронных функций. Я пробовал учебник Обещания на https://jasmine.github.io/tutorials/async.

У меня естьпопытался использовать простой обратный вызов без тестирования здесь, это возвращает 'true'

fs = require('fs')
var testData = []
fs.readFile('iteration1.js', 'utf8', function(err, data){
    if (err) throw err;
    var value = ['table', 'fs.readFile', 'fs.writeFile', 'JSON.stringify'];
    var i;
    for (i = 0; i < value.length; i++) {
        testData.push(data.includes(value[i]))
    }
    readTestData()
})
function readTestData() {
    console.log(testData[0])
}

Это мой код, у меня возникли проблемы с

describe("fs methods", function () {
    fs = require('fs')
    var testData = []
    it("The file should contain 'table'", function() {
        var p1 = new Promise( (resolve, reject) => {
            fs.readFile('src/iteration1.js', 'utf8', function(err, data){
                if (err) throw err
                var value = ['table', 'fs.readFile', 'fs.writeFile', 'JSON.stringify']
                var i;
                for (i = 0; i < value.length; i++) {
                    testData.push(data.includes(value[i]))
                }
            })
            resolve()
        })
        p1.then( value => {
            expect(testData[0]).toEqual('true')
        })
    })
})

"Ожидается, что undefined равно"true '. "

Я ожидаю, что вывод' true 'будет добавлен в массив testData, но кажется, что массив все еще пуст, когда я пытаюсь его протестировать. Я подумал бы, что мог бы избежать этого с использованиемобещаний.

...