The Mocha is a feature-rich JavaScript test framework that runs on Node.js and in the browser, making asynchronous testing easy and entertaining. The Mocha tests are executed serially, allowing flexible and accurate reporting, while uncaptured exceptions are mapped to the correct test cases. The Mocha module is most dependent on npm (source:, and.

The Mocha is an independent open source project run exclusively by volunteers. The Mocha is an independent open source project run exclusively by volunteers.

a funny, easy and adaptable JavaScript test framework

The Mocha is a feature-rich JavaScript test frame that runs on Node.js and in the web browsers and makes it easy and entertaining to test asynchronously..... The Mocha test runs in series, which allows you to report flexibly and accurately while map uncaptured exclusions to the right test cases..... Do you find Mocha useful? Be a sponsor and help Mocha with a free month contribution.....

Using mocha at work? At the moment Mocha needs Node. x or higher. Within Ihrem Editor:'assert');'Array','#indexOf()','should return -1 when the value is not present', .. "Test": "Mocha" Then take part in tests: When you use callback-based sync testing, Mocha will cause an issue when done() is invoked more than once.

When you run the above test, you receive the following text: : The Mocha allows you to use any combination assembly libraries. Trying out async with Mocha couldn't be easier! When Mocha adds a call-back (usually with the name done) to it(), it knows that it should be waiting for this call to finish the test.

Users','#save()','should safe without error','Luna' ); . ); }); }); }); }); }); Alternatively, instead of using the done() lookup, you can give back a promise. Useful when the API' s you are trying to test accept returns rather than recalls: .... With Mocha v3.0.

The use of arrows ("lambda") is not recommended. Lambda trees are lexical to this and cannot use mocha. The following example will fail:'my suite','my test', . ); . }; }; }); }); If you do not need to use the shortcut of Mocha, lambda should work.

Mocha provides the standard "BDD"-interface with the hook before(), after(), beforeEach() and afterEach(). They should be used to setup prerequisites and purge after your testing. The', }); }); }); }); });); Test can appear before, after or with your hook. All before( ) hits run (once), then all beforeEach() hits, testing, all afterEach() hits and then after( ) hits (once).

Each check mark can be called up with an optional text so that you can recognize mistakes in your test more easily. You can also synchronize or asynchronize all of your hooks (before(), after(), beforeEach(), afterEach()); }); 'some description', }); and behave like a normal test case. You can also select any files and insert "root" layer-hooking.

As a result, the call-back to beforeEach() is executed before each test case, regardless of which files it resides in (this is because Mocha has an implicit describe() stack known as the "root suite"). before each test in each file' ); }); If you need to carry out asychronous operation before one of your suits is executed, you can slow down the target found.

Let mocha run with the --delay banner. In this way a specific call-back-functions, run(), is appended to the overall context: 'my suite', // .....

Only the specified suites or test cases can be executed by attaching. only() to the functions. Here is an example of running only one particular suite: 'Array', . '#indexOf()', // ..... Here is an example for the execution of a single test case:'Array','#indexOf()', .'should come back -1 unless present', // ....

});'should give back the index, if available', // .... The only( ) uses stringent matches to determine which test to run. You can use 0 or newer, . only() more than once to specify a partial set of tests: Array','#indexOf()',.'should come back -1 unless present', }) ;.'should come back the index when present', });'should come back -1 if calledt with a non-Array context', }) ; }) ; }) ; }) ; Sie können auch mehrere Suiten auswählen:'Array', .

#indexOf ()','shouldret -1 unless present', });'shouldret the index when present', }) ; }) ; . #concat()','shouldret a new Array', }) ; }) ; }) ; });'#slice()','shouldret a new Array', }) ; }) ; }) ; Aberests will have priority Vorrang haben:'Array', ,} }) ; Aberests will have priority:'Array', ]. #indexOf ()', .'should give -1 if not present', });'should give back the index if present', }); }); }); Note: Hooks, if present, will still be used.

You can do this with the --forbid-only flag in the --forbid-only flag in the continuously integrate test or in a pre-commit hitch. You can instruct Mocha to just disregard this suite(s) and test cases by attaching . skip(). Here is an example of skip a whole suite: 'Array', . '#indexOf()', // .....

[ ] ; }) ; Oder ein bestimmter Testfall:'Array','#indexOf()',.'shouldret -1 unless present', });'shouldretret the index when present', }) ; }) ; }) ; }) ; Meilleure pratique : Use. skip() instead of annotating the test. If you want to jump several checks this way, use this. skip() in a "before" hook: .

and before Mocha v3.0. The skip () was not backed up in async testing and hook. Repeat unsuccessful testing up to a certain number of time. The function is developed to perform end-to-end testing (function tests/Selenium.....) where you can' t just mock them. It is not suggested to use this function for testing units.

It will be performed before/after each hook, but not before/after the hook. HINT: The following example was created with the Selenium web driver (which replaces the Mocha hook for the celebrity chain).

There is no need for any specific scripting - simple ol' JavaScript can be used to provide a feature similar to "parameterized" testing that you may have seen in other frames. The above cipher creates a set of three specifications: A lot of testers show the test time, as well as marking test that are sluggish, like here with the "spec"-Reporter: To optimize what is regarded as "slow", you can use the slow() method: 'something slow', . ); 'should take long enough for me to go make a sandwich', // // // .....

you can also use'a suites of tests', . );'should take less than 500ms', , , , ); });'should take less than500ms as well', ); }); test-specific timeout (0) or the use of these. timeout(0) to deactivate timeout altogether:'should take less than 500ms', . ); ); }); Hook-level timeout can also be used:'a suites of tests', . ); // A very long environmental set-up.

In Mocha, the AssertionError support the anticipated and real characteristics of all threw assertions from an assortment lib. He will try to show the differences between what was anticipated and what the claim actually saw. Performs a one-time test for changes to JavaScript in the cdwd. is 0, by now Mocha would make its own processes terminate once it has run all of them.

There are a number of possible issues with this behaviour; it is an indication of testing (or devices, wiring looms, codes under test, etc.) that cannot be cleaned up well. Finally, "dirty" testing can (but not always) produce falsely positives or falsely negatives. Defaults to v4.0. Sending --exit to the Mocha processes is the simplest way to "fix" the problem.

In order to make sure your testing doesn't leave a mess, here are some initial ideas: The --compilers is obsolete from Mocha v4.0.0 See further explanations and work-arounds. For ES6 module extensions with the.js suffix, you can specify the. js suffix to set up the. js suffix to the. js name. You can also use mocha --require babel-register; --compilers is only required if you need to specify a filename extenu.

Activates the de-bugger feature of the nodes, your script(s) will execute this with the command component and allow you to jump through the source and terminate with the de-bugger-command. Please notice the differences between mocha --bug and mocha debug: mocha-bug starts the built-in DBE client of the mocha --bug nodes, mocha-debug allows you to use a different port - like the Blink Developer Tools.

Using this in combination with --check-leaks, you can specify a white list of known local variable that you would like to see in the world area. You use this to have Mocha checked for leaking values when executing a test. Enter globally that are accepted via the -globals/global options (for example: --check-leaks --globals jQuery,MyLib).

With the --ui you can specify the port to use, by default "bdd". You can use the repeater to specify the repeater to be used, by default "spec". Such as if you are installing ppm mocha-lcov-reporter then you can do it -- reporter mocha-lcov-reporter. This is used by Mocha to emphasize test cases that take too long.

Attach a target that you want to put into an execution definition first. Useful if you have a general set-up package that must be contained in the test-suite. Accept more than one -file flag to enclose more than one set of data, the order in which the flag is specified is the order in which the data is contained in the test-suite.

May also be used in mocha. opts. With the --grep flag, mocha only performs checks that match the specified patterns that have been recompiled to a RegExp file intern. Assume you have both "api" related testing and "app" related testing, as shown in the following snipet; you could use --grep or --grep api app to run one or the other.

This also applies to any other part of a suit or test case titles, --grep user would also be eligible, or even --grep GET. anpi','GET /api/usagers','respond with an array o'users', //...... ) ; }) ; }) ; }) ;' app','GET /users','respond with an arrow of users', //......

Mocha' s "Interface" system allows designers to select their DSL type. It has BDD, TDD, Exports, QUnit and Require-Style API. BDD offers describe(), context(), it(), specify(), before(), after(), beforeEach() and afterEach(). context() is only an nickname for describe() and acts the same way; it only offers one way to make reading and organizing testing simpler.

Shelf', // .... #indexOf ()','if not available','should not drop an error',""]. Three-quarter value (); });'should give back -1', , ]. The'; }); }); ;'if present','should give back the index where the item will appear first in the array',""" ].

The TDD interfaces bietet suite(), test(), suiteSetup(), suiteTeardown(), setup(), setup() und teardown():'Array', //...... . );'#indexOf()','should come back -1 when not present', . ) ; }) ; }) ; }) ; }) ; }) ; L'interface Exports ressemble beaucoup à l'expresso du prédécesseur de Mocha. #indexOf ()''should give -1 if not present' }, 'Array' : '#indexOf()': ].

The QUnit-like surface corresponds to the "flat" appearance of QUnit, whereby the name of the test-suite is just definded before the test cases. As TDD it uses suite() and test(), but similar to BDD, it also contains before(), after(), beforeEach() and afterEach(). `Array' ); '#Length', ` , , ; }); '#indexOf()', ` , ]; . ); . ); . ); . ); . ); }); 'String' ); '#Length', 'foo' }.

It is also useful if you want to prevent the use of variable globalization in your testing. Hint: The required port cannot be executed via the nodes executeable and must be executed via Mocha. Mocha'), Mocha'), Mocha'), Mocha'), Mocha'), Chai'), Array', Array', // .....

That is the standard journalist. The" spec"-Reporter displays a hierarchic display, which is exactly like the test cases interlaced.

A point array requester (or "dot") is just a set of signs that represents test cases. Errors are highlighted by means of exclaim signs (!) in the display, upcoming test by a decimal point (,) and slower test by amber. The" Nyan" journalist is exactly what you can expect: TAP Reporters sends messages for a Test Anything Protocol caterer.

The" list" repororter displays a plain specification listing if test cases passed or failed and displays the error detail at the end of the report. The" progress" journalist implemented a easy to read status bar: The" JSON" REPRORTER prints a large JSON individual JSON file when the test is complete (error or not). The" JSON-Stream" communicator prints newline-separated JSON incidents, starting with a" Start" incident, followed by test runs or errors, and then the last" End" one.

The" min" requester only shows the report summarized, while it still shows an error in case of an error. The reporters works great with --watch, as it deletes the panel to keep your test review at the top. The" doc" requester prints a hierarchic HTML-view of your test bodies. Array','#indexOf()','should give -1 if the value is not present'," , , ].

The command mocha repeater would result in this: }); }); }); });); The instruction mocha repeater-doc array: "suites " "suites"[1,2,3].indexOf(5).should. equal(-1); [1,2,3].indexOf(0).should. equal(-1); The test documents of the SuperAgent requests lib were created with Mocha's documentary report with this bash command: The" Transcript" Reporters generate a transcription TOC and TOC for your test-suite. That' great if you want to use the test as a document within a Github WWI page or a transcript that Github can rendition in the repo.

You can also use the analyzer as well. It is displayed on the standard system tray. Use Mocha to create your own reports. One example is the TeamsCity Report. HTML Reporting is not designed for use on the commandline. It is running in the webrowser. Each version of Mocha will have new versions of./mocha. js and./mocha. com for use in the webinterface.

This method (s) only work in the web browsing context: mocha. We could run mocha. setup('bdd') to use the BDD port before the test script is loaded and executed with "utf-8" "_ css" "stylesheet" "mocha" " js" "_ js" . The mocha option can be used with mocha.setup().

Mocha will try to load"./test/mocha. opts" as a kind of run-control files back on the machine.

Each other row is handled as a switch line arguments (together with an associated value ) that is used by default. Assuming you have the following mocha. opt file: All the above set the rapporteur to period, requires the should libraries and uses it as an output.

You can then call Mocha with extra argument to activate Growl and change the reporters to a list: mocha searches for the glob./test/*. js by defaults, so that you can store your test in the test/directory. To insert subdirectories, specify the --recursive flag.

You can transfer your own globe to set up where mocha searches for tests: This is supported by the globalstar flag, which must be checked to get the same results as the --recursive flag (ZSH and Fix provide this by default). Mocha TextMate Bundles include snipes to make test typing faster and more convenient.

The JetBrains provides a plug-in for its IDE (.i.e. Intelligent IDEA, WebStorm, etc.) which includes a Mocha test run. Wallaby. iS is a continual test utility that provides real-time codec cover for Mocha with any combination of VS codes, atoms, JetBrains I/Os (IntelliJ IDEA, WebStorm, etc.), sublime text and Visual Studio for browsers and nodes. iS objects.

Emac's Mocha test execution assistance is available through a third-party package mocha. It is available on MELPA and can be downloaded and downloaded via M-x package-install mocha. Sidebar is the most full Mocha enhancement for vs cod. In order to run Mocha's testing, you need GNU Make or compatibles; Cygwin should work.

If you want to use another reporter: In the Mocha Wiki on GitHub, in additon to talking with us on grids, for more information, such as spy, mockery and common behavior, you should have a look at the Mocha Wiki on GitHub. See example/tests.html for a current example of Mocha.

Mehr zum Thema