2015-09-29 2 views
0

Я новичок в разработке, основанном на тестах, и я стараюсь использовать сверхспособность, чтобы научить себя. Я смущен, почему я продолжаю получать сообщение об ошибке «приложение не определено»? Это из моих запросов на запрос (приложение), который я выделил ниже. Я попытался найти документацию, но, похоже, не так много. Все мои маршруты находятся в файле с именем «промежуточного слоя», и этот файл начинается так:SuperTest - приложение не определено

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(); 
     }) 

    }) 
}) 

ответ

3

в верхней части файла вам необходимо определить экспресс и приложения, а именно:

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

Кроме того, убедитесь, что вы установили выраж ESS, т.е. через командную строку в узле:

npm install express --save 

(с использованием «--save» добавляет в файл package.json, что позволяет легко отслеживать версии, и т.д., но и устанавливается автоматически, если кто-то еще устанавливает ваш проект, используя установку npm).

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