【发布时间】:2019-11-17 08:57:10
【问题描述】:
JS 新手在这里。我正在使用 Jasmine 测试一个使用 MongoDB 和 Mongoose 的 NodeJS 应用程序,我想用动态工厂替换我的静态测试夹具。 https://github.com/ratson/factory-bot 我觉得不错。
但是,所有示例都来自单个文件,并且不演示文件之间的导出/导入,所以我不明白 modules.exports = 在我的规范中使用工厂是什么。
如果这很重要,我也在使用 ES5。
我的问题是:如何导出这个定义?
spec/factories/user.js
const factory = require('factory-bot').factory;
factory.setAdapter(new FactoryBot.MongooseAdapter());
const User = require('../models/user');
factory.define('user', User, {
username: 'Bob',
expired: false
});
factory.extend('user', 'expiredUser', {
expired: true
});
然后我该如何使用我的导出来制作sampleUsers?
spec/controllers/user.js
const reqs = require("../support/require")
describe("GET /users", () => {
describe("index", () => {
var data = {};
var sampleUsers = factory.createMany('user', 5);
beforeEach((done) => {
reqs.Request.get(/users", (error, response, body) => {
data.status = response.statusCode;
data.body = JSON.parse(body);
done();
});
});
it("returns a 200 response status", () => {
expect(data.status).toBe(200);
});
it("responds with the users collection", async () => {
expect(data.body.users).toBe(sampleUsers);
});
});
});
提前感谢您的任何建议。
【问题讨论】:
标签: node.js testing mongoose jasmine factory-bot