我正在尝试让 Gauge-js 与 Frisby 一起工作。我们使用 Frisby 在我们的 API 上运行功能测试作为黑盒测试。最近将 Frisby 升级到现在使用 Jest 的 2.0.8 版本。一切都很好。现在我想在顶部添加 Gauge-js 以添加人类可读的测试规范/场景/步骤。
我正在 Windows 8.1 机器上进行测试:
- Frisby
- Gauge 0.9.4
- gauge-js 2.0.3
为了使它工作,我将 Frisby 添加为 gauge-js 的依赖项。现在它部分起作用了。它实际上执行了测试步骤,但失败了
ReferenceError: expect is not defined
at incrementAssertionCount (C:\Users\<USER>\AppData\Roaming\gauge\plugins\js\2.0.3\node_modules\frisby\src\frisby\expects.js:14:20)
at FrisbySpec.status (C:\Users\<USER>\AppData\Roaming\gauge\plugins\js\2.0.3\node_modules\frisby\src\frisby\expects.js:23:5)
at FrisbySpec._addExpect.e (C:\Users\<USER>\AppData\Roaming\gauge\plugins\js\2.0.3\node_modules\frisby\src\frisby\spec.js:396:23)
at FrisbySpec._runExpects (C:\Users\<USER>\AppData\Roaming\gauge\plugins\js\2.0.3\node_modules\frisby\src\frisby\spec.js:288:24)
at _fetch.fetch.then.then (C:\Users\<USER>\AppData\Roaming\gauge\plugins\js\2.0.3\node_modules\frisby\src\frisby\spec.js:142:14)
at process._tickCallback (internal/process/next_tick.js:109:7)
这是实际的测试步骤:
/* globals gauge*/
"use strict";
var frisby = require('frisby');
// --------------------------
// Gauge step implementations
// --------------------------
step("Get responds with <state>.", function (state, doneFn) {
frisby
.timeout(1500)
.get('http://localhost:8001/some/get/resource', {
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic QWERTYASDFEDEFTGHYFVCCFRJgyuku'
}
})
// .expect('status', 200)
// .expect('header', 'Content-Type', 'application/json; charset=utf-8')
// .expect('json', state)
.done(doneFn).catch(error => {
console.log(error);
});
});
当注释掉未注释的行时,会发生错误。
我认为问题实际上在于它是如何加载依赖的,但是我的 js 知识有点零散和生疏。任何帮助,将不胜感激。