Ok, во-первых, создать тестовую папку в корневом каталоге приложения. Добавить любую структуру папок вы предпочитаете ... Вот скриншот с одного из горных проектов:
Я использую Supertest и должен ... Так что, если вы хотите скопировать вообще вставить вещи я введите, пожалуйста, здесь установить (вместе с мокко, конечно):
npm install supertest
npm install should
Далее, внутри bootstrap.test.js (проверьте изображение выше, чтобы увидеть, где поставить его, например) добавить конфигурацию, как:
var Sails = require('sails');
before(function (done) {
process.env.NODE_ENV = 'test';
process.env.PORT = 9999;
Sails.lift({
models: {
connection: 'localDiskDb',
migrate: 'drop'
}
}, function (err, server) {
sails = server;
if (err) return done(err);
sails.log.info('***** Starting tests... *****');
console.log('\n');
done(null, sails);
});
});
after(function (done) {
sails.lower(done);
});
Теперь добавьте свой первый тест ... В вашем примере я бы поставил его в тест/интеграции/контроллеры/MyController.test.js
Это демонстрационный код, который вы можете использовать для теста:
var request = require('supertest'),
should = require('should');
describe('My controller', function() {
before(function (done) {
done(null, sails);
});
it('should get data', function (done) {
request(sails.hooks.http.app)
.get('/list/item')
.send({id: 123, someOtherParam: "something"})
.expect(200)
.end(function (err, res) {
if (err) return done(err);
should.exist(res.body);
done();
});
});
});
Теперь открыть файл mocha.opts (если вы запутались посмотреть на скриншоте выше) и добавить что-то вроде этого:
--bail
--timeout 20s
test/bootstrap.test.js
test/integration/controllers/**/*.test.js
Наконец, тип мокко в терминале внутри корневой папки для запуска тестов!
Вы также можете добавить скрипт в package.json так:
"scripts": {
"test": "mocha"
},
А потом просто запустить: тест НПМ
так и в тесте, как я могу передать информацию id.query, поскольку в контроллер, требуется «req.id.query» – jacobcan118
Я обновил свой ответ ... Проверьте демонстрационный код тестового поиска на строку: .send ({id: 123, someOtherParam: «something»}) ... Здесь я отправляю id = 123 на ваш маршрут, и вы можете получить его с помощью req.param ('id') ... Ваш контроллер может выглядеть так: User.findOne (req.param ('id'). populateAll(). не уверен, где вы видели синтаксис req.id.query .... – hlozancic
Нужна дополнительная помощь :)? – hlozancic