Socket
Socket
Sign inDemoInstall

jasmine-core

Package Overview
Dependencies
0
Maintainers
3
Versions
61
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jasmine-core

Simple JavaScript testing framework for browsers and node.js


Version published
Weekly downloads
3.6M
decreased by-14.71%
Maintainers
3
Install size
384 kB
Created
Weekly downloads
 

Package description

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

Readme

Source

A JavaScript Testing Framework

Jasmine is a Behavior Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any JavaScript framework. Thus it's suited for websites, Node.js projects, or anywhere that JavaScript can run.

Upgrading from Jasmine 4.x? Check out the upgrade guide.

Contributing

Please read the contributors' guide.

Installation

There are several different ways to install Jasmine, depending on your environment and how you'd like to use it. See the Getting Started page for details.

Usage

See the documentation site, particularly the Your First Suite tutorial for information on writing specs, and the FAQ.

Supported environments

Jasmine tests itself across popular browsers (Safari, Chrome, Firefox, and Microsoft Edge) as well as Node.

EnvironmentSupported versions
Node18, 20
Safari15-17
ChromeEvergreen
FirefoxEvergreen, 102, 115
EdgeEvergreen

For evergreen browsers, each version of Jasmine is tested against the version of the browser that is available to us at the time of release. Other browsers, as well as older & newer versions of some supported browsers, are likely to work. However, Jasmine isn't tested against them and they aren't actively supported.

To find out what environments work with a particular Jasmine release, see the release notes.

Maintainers

Maintainers Emeritus

Copyright (c) 2008-2019 Pivotal Labs
Copyright (c) 2008-2023 The Jasmine developers
This software is licensed under the MIT License.

Keywords

FAQs

Last updated on 09 Feb 2024

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc