Security News
Cloudflare Adds Security.txt Setup Wizard
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
jasmine-core
Advanced tools
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.
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();
});
});
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple. It's often compared to Jasmine, with the main difference being that Mocha allows for more flexibility in terms of assertion libraries, mock/stub utilities, and reporting.
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works out of the box for any React project but can be used more broadly. It includes its own assertion library and has a more powerful mocking library compared to Jasmine.
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any JavaScript testing framework. It's often used in conjunction with Mocha and provides a more expressive syntax and additional assertions over Jasmine's built-in matchers.
AVA is a test runner for Node.js with a concise API, detailed error output, and process isolation that lets you develop with confidence. It's different from Jasmine in that it runs tests concurrently, which can be a significant advantage for testing I/O heavy operations.
=======
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.
Documentation & guides live here: http://jasmine.github.io
For a quick start guide of Jasmine 2.0, see the beginning of http://jasmine.github.io/2.0/introduction.html
Upgrading from Jasmine 1.x? Check out the 2.0 release notes for a list of what's new (including breaking interface changes).
Please read the contributors' guide
To install Jasmine on your local box:
git clone https://github.com/pivotal/jasmine.git
mkdir my-project/jasmine
mv jasmine/dist/jasmine-standalone-2.0.0.zip my-project/jasmine
cd my-project/jasmine
unzip jasmine-standalone-2.0.0.zip
Add the following to your HTML file:
<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-2.0.0/jasmine.css">
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/boot.js"></script>
For the Jasmine Ruby Gem:
https://github.com/pivotal/jasmine-gem
For the Jasmine Python Egg:
https://github.com/pivotal/jasmine-py
Copyright (c) 2008-2014 Pivotal Labs. This software is licensed under the MIT License.
FAQs
Simple JavaScript testing framework for browsers and node.js
The npm package jasmine-core receives a total of 3,738,065 weekly downloads. As such, jasmine-core popularity was classified as popular.
We found that jasmine-core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
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.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.
Security News
ENISA’s 2024 report highlights the EU’s top cybersecurity threats, including rising DDoS attacks, ransomware, supply chain vulnerabilities, and weaponized AI.