Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Sequelize extension to deal with data-mocking for testing

License

NotificationsYou must be signed in to change notification settings

rochejul/sequelize-mocking

Repository files navigation

Build StatusDependency StatusdevDependency Status

Known Vulnerabilities

NPMNPM

Sequelize extension to deal with data-mocking for testing

  • it was tested with Sequelize 3.19.3 before 1.0.0
  • it was tested with Sequelize 4.3.1 since 1.0.0.
  • it was tested with Sequelize 5.3.0 since 2.0.0

And you have to declare in your package.json the expected sequelize version

It will use the sqlite database for mocked database, will recreate it for database.

Can be integrated with Mocha and Jasmine.

A sample of use:

/** * Test around the @{UserService} * *@module test/user/service */'use strict';constchai=require('chai');constsinon=require('sinon');constpath=require('path');constsequelizeMockingMocha=require('sequelize-mocking').sequelizeMockingMocha;describe('User - UserService (using sequelizeMockingMocha) - ',function(){constDatabase=require('../../lib/database');constUserService=require('../../lib/user/service');constUserModel=require('../../lib/user/model');// Basic configuration: create a sinon sandbox for testingletsandbox=null;beforeEach(function(){sandbox=sinon.sandbox.create();});afterEach(function(){sandbox&&sandbox.restore();});// Load fake data for the userssequelizeMockingMocha(Database.getInstance(),path.resolve(path.join(__dirname,'./fake-users-database.json')),/* Or load array of files        [            path.resolve(path.join(__dirname, './fake-users-database.json')),            path.resolve(path.join(__dirname, './fake-candy-database.json')),        ]        */{'logging':false});it('the service shall exist',function(){chai.expect(UserService).to.exist;});describe('and the method findAll shall ',function(){it('exist',function(){chai.expect(UserService.findAll).to.exist;});it('shall returns an array of user',function(){returnUserService.findAll().then(function(users){chai.expect(users).deep.equals([{'id':1,'firstName':'John','lastName':'Doe','age':25,'description':null}]);});});});describe('and the method find shall ',function(){it('exist',function(){chai.expect(UserService.find).to.exist;});it('shall return a user if we can',function(){letfindByIdSpy=sandbox.spy(UserModel,'findById');returnUserService.find(1).then(function(user){chai.expect(findByIdSpy.called).to.be.true;chai.expect(findByIdSpy.calledOnce).to.be.true;chai.expect(findByIdSpy.calledWith(1)).to.be.true;chai.expect(user).deep.equals({'id':1,'firstName':'John','lastName':'Doe','age':25,'description':null});});});it('shall return null if not found',function(){returnUserService.find(-1).then(function(user){chai.expect(user).to.be.null;});});});});

And the mocked data from the JSON file:

[  {"model":"user","data": {"id":1,"firstName":"John","lastName":"Doe","age":25,"description":null    }  }]

About

Sequelize extension to deal with data-mocking for testing

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors8


[8]ページ先頭

©2009-2025 Movatter.jp