我无法弄清楚为什么这个frisby测试不会运行!
基本上我正在尝试从文件中导入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 :(得分: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文件上的编码,因为没有.replace()调用,这一切都会分开。