fbpx
Wikipedia

Jasmine (software)

Jasmine is an open-source testing framework for JavaScript.[4] It aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit testing frameworks, such as ScrewUnit, JSSpec, JSpec, and RSpec.[5]

Jasmine
Developer(s)Pivotal Labs
Initial releaseSeptember 14, 2010; 12 years ago (2010-09-14)[1]
Stable release
4.0.1 / February 22, 2022; 11 months ago (2022-02-22)[2]
Repository
  • github.com/Jasmine/Jasmine
Written inJavaScript
Operating systemCross-platform
TypeUnit test
LicenseMIT License[3]
Websitejasmine.github.io 

History

The developers at Pivotal Labs for Jasmine previously developed a similar unit testing framework called JsUnit before active development of Jasmine.[6]

Features

  • Supports asynchronous testing.[7]
  • Makes use of 'spies' for implementing test doubles.[7]
  • Supports testing of front-end code through a front-end extension of Jasmine called Jasmine-jQuery.[7]

Usage

Jasmine aims to be easy to read. A simple hello world test looks like the code below, where describe() describes a suite of tests and it() is an individual test specification. The name "it()" follows the idea of behavior-driven development and serves as the first word in the test name, which should be a complete sentence. Usage follows syntax similar to that of RSpec.

The code below tests this function

function helloWorld() { return 'Hello world!'; } 

and verifies that its output is indeed the text "Hello world!".

describe('Hello world', function() { it('says hello', function() { expect(helloWorld()).toEqual('Hello world!'); }); }); 

Jasmine provides a rich set of built-in matchers. In the above example, toEqual checks the equality between the value returned from the helloWorld() function and the 'Hello world!' string. This is the same as assertions used in other testing frameworks. Jasmine matchers return a Boolean value: true if the expectation is matched (a way to indicate that the test has passed) or false if the expectation does not match.[7] A good practice is to put a single expectation in an individual it() test specification.

Other built-in matchers include toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo.[8] The identity matcher toBe checks if two things are the same object. The condition matchers toBeTruthy, toBeFalsy evaluate if something is true or false and toBeDefined, toBeUndefined check if something is defined or undefined. As the name suggests toBeNull checks if something is null and toBeNaN checks if something is not a number (NaN). Precision matcher toBeCloseTo accepts two parameters and checks if a number is close to the first parameter, given a certain amount of decimal precision as indicated by the second parameter. Matcher toContain is used to verify that an element, object or sub-string is contained in an array, list or string.

The special built-in matcher toThrow is used to verify that an exception has been thrown.[7] The code below verifies that "Some exception" is thrown.

describe('Expect to throw an exception', function() { it('throws some exception', function() { expect( function(){ throw('Some exception'); }).toThrow('Some exception'); }); }); 

Jasmine has a number of other features, such as custom matchers, spies, and support for asynchronous specifications.

Jasmine test runners

Jasmine comes with an inbuilt test runner. Jasmine tests can run browser tests by including a simple SpecRunner.html[9] file or by using it as a command line test runner supported for various languages like Nodejs, Python, Ruby, or (old way) by using Karma,[10] a simple JavaScript test runner tool.

Comparison between Jasmine and Mocha[11]

Mocha is another popular Javascript testing framework. The comparison between Jasmine and Mocha is given in the table below.

Jasmine Mocha
Jasmine comes with test doubles by using spies. Mocha does not come with a test double library, and generally uses an external library like Sinon.
Jasmine has a command line utility to run tests. Mocha has a command line utility to run tests.
Jasmine has assertions built into it. Mocha does not have an assertions library and uses Chai for assertions.

Benefits

  • The aim of Jasmine is to be browser, framework, platform and language independent.[12]
  • Besides behavior-driven development, Jasmine also supports test driven development.[12]

See also

References

  1. ^ Frank, Davis W. . Pivotal Labs. Archived from the original on 22 February 2014. Retrieved 11 February 2014.
  2. ^ "Releases · jasmine/jasmine". github.com. Retrieved 2022-04-05.
  3. ^ "jasmine/MIT.LICENSE". GitHub. Retrieved 25 April 2017.
  4. ^ "Home". jasmine.github.io.
  5. ^ "Background · jasmine/Jasmine Wiki". GitHub.
  6. ^ GitHub JsUnit Project Page
  7. ^ a b c d e Ragonha, Paulo (2013). Jasmine JavaScript Testing. Packt Publishing. ISBN 978-1782167211.
  8. ^ Hahn, Evan (2013). JavaScript Testing with Jasmine. O'Reilly Media. ISBN 978-1449356378.
  9. ^ "A simple project". GitHub.
  10. ^ "Karma Jasmine".
  11. ^ "Jasmine vs. Mocha". Marco Franssen. Retrieved 13 February 2017.
  12. ^ a b "Comparison: Jasmine vs Mocha vs QUnit | StackShare". Retrieved 13 February 2017.

External links

  • Jasmine website
  • Jasmine on GitHub
  • JSSpec
  • JSpec
  • ScrewUnit

jasmine, software, this, article, relies, excessively, references, primary, sources, please, improve, this, article, adding, secondary, tertiary, sources, find, sources, jasmine, software, news, newspapers, books, scholar, jstor, september, 2012, learn, when, . This article relies excessively on references to primary sources Please improve this article by adding secondary or tertiary sources Find sources Jasmine software news newspapers books scholar JSTOR September 2012 Learn how and when to remove this template message Jasmine is an open source testing framework for JavaScript 4 It aims to run on any JavaScript enabled platform to not intrude on the application nor the IDE and to have easy to read syntax It is heavily influenced by other unit testing frameworks such as ScrewUnit JSSpec JSpec and RSpec 5 JasmineDeveloper s Pivotal LabsInitial releaseSeptember 14 2010 12 years ago 2010 09 14 1 Stable release4 0 1 February 22 2022 11 months ago 2022 02 22 2 Repositorygithub wbr com wbr Jasmine wbr JasmineWritten inJavaScriptOperating systemCross platformTypeUnit testLicenseMIT License 3 Websitejasmine wbr github wbr io Contents 1 History 2 Features 3 Usage 4 Jasmine test runners 5 Comparison between Jasmine and Mocha 11 6 Benefits 7 See also 8 References 9 External linksHistory EditThe developers at Pivotal Labs for Jasmine previously developed a similar unit testing framework called JsUnit before active development of Jasmine 6 Features EditSupports asynchronous testing 7 Makes use of spies for implementing test doubles 7 Supports testing of front end code through a front end extension of Jasmine called Jasmine jQuery 7 Usage EditJasmine aims to be easy to read A simple hello world test looks like the code below where describe describes a suite of tests and it is an individual test specification The name it follows the idea of behavior driven development and serves as the first word in the test name which should be a complete sentence Usage follows syntax similar to that of RSpec The code below tests this function function helloWorld return Hello world and verifies that its output is indeed the text Hello world describe Hello world function it says hello function expect helloWorld toEqual Hello world Jasmine provides a rich set of built in matchers In the above example toEqual checks the equality between the value returned from the helloWorld function and the Hello world string This is the same as assertions used in other testing frameworks Jasmine matchers return a Boolean value true if the expectation is matched a way to indicate that the test has passed or false if the expectation does not match 7 A good practice is to put a single expectation in an individual it test specification Other built in matchers include toBe toBeTruthy toBeFalsy toContain toBeDefined toBeUndefined toBeNull toBeNaN toBeGreaterThan toBeLessThan toBeCloseTo 8 The identity matcher toBe checks if two things are the same object The condition matchers toBeTruthy toBeFalsy evaluate if something is true or false and toBeDefined toBeUndefined check if something is defined or undefined As the name suggests toBeNull checks if something is null and toBeNaN checks if something is not a number NaN Precision matcher toBeCloseTo accepts two parameters and checks if a number is close to the first parameter given a certain amount of decimal precision as indicated by the second parameter Matcher toContain is used to verify that an element object or sub string is contained in an array list or string The special built in matcher toThrow is used to verify that an exception has been thrown 7 The code below verifies that Some exception is thrown describe Expect to throw an exception function it throws some exception function expect function throw Some exception toThrow Some exception Jasmine has a number of other features such as custom matchers spies and support for asynchronous specifications Jasmine test runners EditJasmine comes with an inbuilt test runner Jasmine tests can run browser tests by including a simple SpecRunner html 9 file or by using it as a command line test runner supported for various languages like Nodejs Python Ruby or old way by using Karma 10 a simple JavaScript test runner tool Comparison between Jasmine and Mocha 11 EditMocha is another popular Javascript testing framework The comparison between Jasmine and Mocha is given in the table below Jasmine MochaJasmine comes with test doubles by using spies Mocha does not come with a test double library and generally uses an external library like Sinon Jasmine has a command line utility to run tests Mocha has a command line utility to run tests Jasmine has assertions built into it Mocha does not have an assertions library and uses Chai for assertions Benefits EditThe aim of Jasmine is to be browser framework platform and language independent 12 Besides behavior driven development Jasmine also supports test driven development 12 See also EditList of JavaScript libraries List of unit testing frameworks Mocha JavaScript framework QUnit JavaScript framework JavaScript libraryReferences Edit Frank Davis W Jasmine 1 0 Released Pivotal Labs Archived from the original on 22 February 2014 Retrieved 11 February 2014 Releases jasmine jasmine github com Retrieved 2022 04 05 jasmine MIT LICENSE GitHub Retrieved 25 April 2017 Home jasmine github io Background jasmine Jasmine Wiki GitHub GitHub JsUnit Project Page a b c d e Ragonha Paulo 2013 Jasmine JavaScript Testing Packt Publishing ISBN 978 1782167211 Hahn Evan 2013 JavaScript Testing with Jasmine O Reilly Media ISBN 978 1449356378 A simple project GitHub Karma Jasmine Jasmine vs Mocha Marco Franssen Retrieved 13 February 2017 a b Comparison Jasmine vs Mocha vs QUnit StackShare Retrieved 13 February 2017 External links EditJasmine website Jasmine on GitHub JSSpec JSpec ScrewUnit Retrieved from https en wikipedia org w index php title Jasmine software amp oldid 1129068382 History, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.