1.4.0 • Published 8 years ago

loopback-testing v1.4.0

Weekly downloads
270
License
MIT
Repository
github
Last release
8 years ago

DEPRECATED

This module is no longer maintained by StrongLoop/IBM.

We are encouraging the community to take the ownership of this module. Please open an issue in https://github.com/strongloop/loopback if you are willing to become the new maintainer.

See also https://groups.google.com/forum/#!topic/loopbackjs/w038RvqHeYI


#loopback-testing

Utilities for testing LoopBack apps

overview

The following helpers are designed to generate mocha tests against LoopBack apps.

install

  1. npm install loopback-testing --save-dev
  2. Assuming you started with a clean template/project generated by slc loopback
  3. If you have mocha installed as a global npm module that's great! Simply update <your_project>/package.json with:

    {
      ...
      "scripts": {
        ...
        "test": "mocha"
      }
    }
  4. Otherwise, you can utilize the mocha library within the loopback-testing testing module:

    {
      ...
      "scripts": {
        ...
        "test": "./node_modules/loopback-testing/node_modules/.bin/mocha"
      }
    }
  5. Run npm test to execute any tests under the test directory.

basic usage

Below is a simple LoopBack app.

var loopback = require('loopback');
var app = loopback();
var Product = app.model('product');
Product.attachTo(loopback.memory());

Use the loopback-testing module to generate mocha tests.

var lt = require('loopback-testing');
var assert = require('assert');
var app = require('../server/server.js'); //path to app.js or server.js

describe('/products', function() {
  lt.beforeEach.withApp(app);
  lt.describe.whenCalledRemotely('GET', '/products', function() {
    lt.it.shouldBeAllowed();
    it('should have statusCode 200', function() {
      assert.equal(this.res.statusCode, 200);
    });

    lt.beforeEach.givenModel('product');
    it('should respond with an array of products', function() {
      assert(Array.isArray(this.res.body));
    });
  });
});

building test data

Use TestDataBuilder to build many Model instances in one async call. Specify only properties relevant to your test, the builder will pre-fill remaining required properties with sensible defaults.

var TestDataBuilder = require('loopback-testing').TestDataBuilder;
var ref = TestDataBuilder.ref;

// The context object to hold the created models.
// You can use `this` in mocha test instead.
var context = {};

var ref = TestDataBuilder.ref;
new TestDataBuilder()
  .define('application', Application, {
    pushSettings: { stub: { } }
  })
  .define('device', Device, {
     // use the value of application's id
     // the value is resolved at build time
     appId: ref('application.id'),
     deviceType: 'android'
  })
  .define('notification', Notification)
  .buildTo(context, function(err) {
    // test models are available as
    //   context.application
    //   context.device
    //   context.notification
  });
1.4.0

8 years ago

1.3.0

8 years ago

1.2.0

9 years ago

1.1.0

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

10 years ago

1.0.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago