【发布时间】:2015-07-08 07:12:41
【问题描述】:
我不确定它为什么会抛出这个错误以及它到底在说什么不是函数。
'use strict';
var koa = require("koa");
var app = koa();
var chai = require('chai');
var expect = chai.expect;
var request = require('supertest');
describe('Feature: Car REST Endpoint', function () {
context('Scenario: GET a Car', function () {
var url = 'http://localhost/search/cars';
describe('Given: the resource is accessed at the resource url' + url, function () {
describe('Then: we receive a successful response', function(){
it('status code should be 200', function (done){
request(app)
.get(url)
.expect(200,done);
});
});
它说是 .expect(200,done) 行,但我可能错了。
我也试过这个,但没有运气:
request(app)
.get(url)
.expect(200)
.end(function(err, res){
if (err) return done(err);
done()
});
我也试过var request = require('supertest').agent(koa);
【问题讨论】:
-
你能分享确切的错误信息吗?什么不是函数?您可以尝试使用 console.log 或调试来获取对象返回的内容吗?
-
我什至不确定我知道它在说什么对象。
-
看起来响应是未定义的,当它试图读取响应的状态代码时,可能会在 expect(200) 行中检查...未定义的会有意义...我想要我的测试简单地失败,而不是抛出这样的巨大错误。当然那个端点还没有,我必须试驾它!但是,如果响应未定义,我的 BDD 测试应该会失败,而不是非常适合。
-
您可以更进一步,设置 $DEBUG 环境变量 =
*。这将向您展示更多正在发生的事情。我不能说只看调用堆栈会导致它抛出错误 -
你在跟我开玩笑吗!哇!就是这样。我到底花了多少时间在这上面