2014-01-03 3 views
3

Я не могу понять, почему эти тесты frisby не будут работать!Как запустить тест Frisby.js внутри функции

В основном я пытаюсь импортировать JSON из файла и проверять его на возврат от запроса. Компилятор, похоже, не обнаруживает никаких тестов при запуске этого файла.

Если кто-нибудь может предложить лучший способ сделать это? Я думаю о том, чтобы попробовать другой способ обработки чтения файла. Я знаю о readFileSync(), но я не хочу использовать это, если мне это не нужно! Любая помощь будет оценена по достоинству.

function readContent(callback,url,file) { 
    fs.readFile(file, 'UTF8', function (err, content) { 
     if (err) return callback(err) 
     data = JSON.parse(content) 
     callback(null, data) 
    }) 
} 

readContent(function (err, content) { 
    frisby.create('Testing API') 
    .get(url) 
     .expectStatus(200) 
     .expectBodyContains(content) 
    .toss() 
}, 
url,file) 

ответ

0

Вот один я подготовил ранее:

// Read a JSON file from disk, and compare its contents with what comes back from the API. 
fs.readFile(path.resolve(__dirname, 'GET_ReferenceTypes.json'), 'utf-8', function(error, data){ 
    if (error) throw error 
    frisby.create('GET ReferenceTypes, inside readFile callback') 
    .get(URL + 'ReferenceTypes?requestPersonId=2967&id=99') 
    .expectStatus(200) 
    // JSON.parse() is required to convert the string into a proper JSON object for comparison. 
    // The .replace() strips the BOM character from the beginning of the unicode file. 
    .expectJSON(JSON.parse(data.replace(/^\uFEFF/, ''))) 
    .toss(); 
}); 

Дважды проверьте кодировку на файл JSON, потому что вся эта вещь приходит друг от друга без .Привернуть() вызова.

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