0.1.0 • Published 8 years ago

jasmine-def v0.1.0

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

jasmine-def

npm version Build Status Code Climate Test Coverage devDependencies Status js-standard-style

Define lazily evaluated test data via def() and subject() functions.

Usage

Without jasmine-def

describe('old spec', function () {

  // order is important, options must be defined before subject
  beforeEach(function () {
    this.options = { foo: 'foo' };
  });

  beforeEach(function () {
    this.subject = new SomeObject(this.options)
  });

  it('works', function () {
    expect(this.options).toBeDefined();
    expect(this.subject).toBeDefined();
  });
});

With jasmine-def

describe('new shiny spec', function () {

  // order is not important, defined properties are lazy evaluated
  subject(function () {
    return new SomeObject(this.options)
  });

  def('options', function () {
    return { foo: 'foo' }
  });

  it('works', function () {
    expect(this.options).toBeDefined();
    expect(this.subject).toBeDefined();
  });
});