Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jasmine-core

Package Overview
Dependencies
Maintainers
3
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jasmine-core

Simple JavaScript testing framework for browsers and node.js

  • 5.5.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5.2M
increased by6%
Maintainers
3
Weekly downloads
 
Created

What is jasmine-core?

The jasmine-core package is the core framework for Jasmine, a behavior-driven development framework for testing JavaScript code. It does not rely on browsers, DOM, or any JavaScript framework, making it suitable for websites, Node.js projects, or anywhere that JavaScript can run.

What are jasmine-core's main functionalities?

Writing Test Suites

This feature allows you to group related specs (tests) together. The 'describe' function is for grouping, and 'it' is for individual specs.

describe('A suite is just a function', function() {
  var a;

  it('and so is a spec', function() {
    a = true;

    expect(a).toBe(true);
  });
});

Matchers

Matchers are used to implement a boolean comparison between the actual value and the expected value. The 'toBe' matcher is one of the simplest matchers.

describe('The 'toBe' matcher compares with ===', function() {
  it('and has a positive case', function() {
    expect(true).toBe(true);
  });

  it('and can have a negative case', function() {
    expect(false).not.toBe(true);
  });
});

Setup and Teardown

Setup and teardown functions like 'beforeEach' and 'afterEach' are used to perform actions before and after each spec in a suite, respectively.

describe('A spec', function() {
  beforeEach(function() {
    this.value = 0;
  });

  afterEach(function() {
    this.value = null;
  });

  it('can use the `this` to share state', function() {
    expect(this.value).toEqual(0);
    this.value += 1;
  });

  it('prevents test pollution by having an isolated `this` per spec', function() {
    expect(this.value).toEqual(0);
  });
});

Spies

Spies are used to track calls to functions and all arguments of those calls. They can be used to stub any function and track its usage and calls.

describe('A spy', function() {
  var foo, bar = null;

  beforeEach(function() {
    foo = {
      setBar: function(value) {
        bar = value;
      }
    };

    spyOn(foo, 'setBar');

    foo.setBar(123);
    foo.setBar(456, 'another param');
  });

  it('tracks that the spy was called', function() {
    expect(foo.setBar).toHaveBeenCalled();
  });
});

Asynchronous Support

Jasmine supports asynchronous testing by using the 'done' function to signal that an async function has completed before moving on to the next spec.

describe('Async spec', function() {
  var value;

  beforeEach(function(done) {
    setTimeout(function() {
      value = 0;
      done();
    }, 1);
  });

  it('should support async execution of test preparation and expectations', function(done) {
    value++;
    expect(value).toBeGreaterThan(0);
    done();
  });
});

Other packages similar to jasmine-core

Keywords

FAQs

Package last updated on 02 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc