Adding static fixtures
#
InstallationFollow the installation example in the intro in order to install and configure an npm script for starting the Mocks Server in your project.
#
Files structureCreate a /mocks
folder in your project root, containing a behaviors.js
file, and a fixtures/users.js
file:
You can create as many "behaviors" files as you want in the
mocks
folder. The Mocks Server will load all of them automatically, but never create fixtures at first folder level, as it will try to interpret them also as "behaviors".
#
Create an users fixtureNow we are going to add a fixture to the /mocks/fixtures/users.js
file, which will be used when GET requests are received in the /api/users
path or our "api mock":
#
Export a default behaviorImport your recently created getUsers
fixture in the /mocks/behaviors.js
file and create an "standard" behavior containing it:
#
Start the Mocks ServerThe interactive CLI will be started:
Browse to http://localhost:3100/api/users to check that Mocks Server is serving your users collection fixture at the expected url. You should see the response in your browser:
#
Add fixture for getting an specific userNow we have the mocked the response for the "users" collection. Let's add the fixture for getting an specific user:
Add the fixture to the "standard" behavior:
The Mocks Server is watching for file changes, so your fixtures should have been refreshed automatically.
Browse to http://localhost:3100/api/users/1. You should see the response in your browser:
But... even when you change the user id in the request, (http://localhost:3100/api/users/2) obviously the response will be still the same:
Well, this is the expected behavior of a mocks server, but you can add a new mocks "behavior" to change the response:
#
Add another behaviorLet's add another "GET user" fixture, but now it will be always responded with the second user:
And let's add a new Behavior extending the standard one:
Now the Mocks Server CLI indicates that it has two behaviors available.
#
Change current behaviorUse the CLI to change current behavior:
Browse to http://localhost:3100/api/users/2. You should now see the second user:
Browse to http://localhost:3100/api/users. Users collection is also available:
#
Add multiple fixtures and behaviorsNow you've seen what Mocks Server can do, you can add as much fixtures you need for your development or end-to-end tests, (such as error responses cases, "users" with very long name, another special cases, etc.)
You can combine all your fixtures in as much behaviors as you need, extending them or creating them from scratch.
And, very important, you can easily change the current behavior using the interactive CLI or the REST API, which will make your development or acceptance tests environments very much agile and flexible, and not api dependant.