gpt4 book ai didi

javascript - SuperTest - 应用程序未定义

转载 作者:行者123 更新时间:2023-11-28 18:59:46 26 4
gpt4 key购买 nike

我是测试驱动开发的新手,正在尝试使用 super 测试来自学。我很困惑为什么我不断收到错误“应用程序未定义”?这是我对 request(app) 的调用,我在下面用粗体显示了它。我尝试查找文档,但似乎内容并不多。我的所有路由都位于一个名为“中间件”的文件中,该文件的开头如下:

 var bodyParser = require('body-parser');
var helpers = require('./helpers.js'); // our custom middleware
var db = require('../DB/DB.js');
var router = require('../routes.js');
var path = require('path');
var fs = require('fs');
var gm = require('gm');


module.exports = function (app, express) {}
<小时/>

我使用 supertest 来测试中间件文件的路由的实际文件:

    var chai = require('chai')
var assert = chai.assert;
var should = chai.should();
var expect = chai.expect;
var helpers = require("../config/helpers.js");
var middleware = require("../config/middleware.js");
// for when we eventually want to test against mock data
var fs = require('fs');
var path = require('path');
var supertest = require("supertest")(middleware);

describe('middleware API', function() {


it('responds with binary data', function(done) {
var imagePath = path.join(__dirname, '/../assets/drawings/', userName + '.png');
**request(app)**
.get(imagePath)
.expect(201)
.expect('Content-Type', 'image.png')
.parse(binaryParser)
.end(function(err, res) {
if (err) return done(err);

// binary response data is in res.body as a buffer
assert.ok(Buffer.isBuffer(res.body));
console.log("res=", res.body);

done();
});
});

it('sends back one image', function(done) {
**request(app)**
.get('/game/')
.expect(201)
.expect('Content-Type', 'image.png')
.expect('Content-Length', '1')
.parse(binaryParser)
.end(function(err, res) {
if (err) return done(err);

// binary response data is in res.body as a buffer
assert.ok(Buffer.isBuffer(res.body));
console.log("res=", res.body);

done();
})

})
})

最佳答案

在文件顶部,您需要定义express和app,即:

var express        = require('express'),
app = express();

此外,请确保您已安装express,即通过节点中的命令行:

npm install express --save

(使用“--save”将其添加到您的 package.json 文件中,这样可以轻松跟踪版本等,而且如果其他人使用 npm install 安装您的项目,也会自动安装)。

关于javascript - SuperTest - 应用程序未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32833750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com