phonegap-ios 源码

  • Y9_391805
  • 11.4MB
  • 文件格式
  • 0
  • VIP专享
  • 0
  • 2022-05-01 12:06
PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动应用程序。它使开发者能够利用iPhone,Android,Palm,Symbian,Blackberry,Windows Phone和Beda智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等。
Nodeunit ======== Simple syntax, powerful tools. Nodeunit provides easy async unit testing for node.js and the browser. * Simple to use * Just export the tests from a module * Works with node.js and in the browser. * Helps you avoid common pitfalls when testing asynchronous code * Easy to add test cases with setUp and tearDown functions if you wish * Flexible reporters for custom output, built-in support for HTML and jUnit XML * Allows the use of mocks and stubs __Contributors__ * [alexgorbatchev]( * [alexkwolfe]( * [azatoth]( * [coffeemate]( * [luebken]( * [orlandov]( * [Sannis]( * [sstephenson]( * [thegreatape]( * and thanks to [cjohansen]( for input and advice on implementing setUp and tearDown functions. See [cjohansen's fork]( Also, check out gerad's [nodeunit-dsl]( project, which implements a 'pretty dsl on top of nodeunit'. More contributor information can be found in the []( file. Usage ----- Here is an example unit test module: exports.testSomething = function(test){ test.expect(1); test.ok(true, "this assertion should pass"); test.done(); }; exports.testSomethingElse = function(test){ test.ok(false, "this assertion should fail"); test.done(); }; When run using the included test runner, this will output the following: <img src="" /> Installation ------------ There are two options for installing nodeunit: 1. Clone / download nodeunit from [github](, then: make && sudo make install 2. Install via npm: npm install nodeunit API Documentation ----------------- Nodeunit uses the functions available in the node.js [assert module]( * __ok(value, [message])__ - Tests if value is a true value. * __equal(actual, expected, [message])__ - Tests shallow, coercive equality with the equal comparison operator ( == ). * __notEqual(actual, expected, [message])__ - Tests shallow, coercive non-equality with the not equal comparison operator ( != ). * __deepEqual(actual, expected, [message])__ - Tests for deep equality. * __notDeepEqual(actual, expected, [message])__ - Tests for any deep inequality. * __strictEqual(actual, expected, [message])__ - Tests strict equality, as determined by the strict equality operator ( === ) * __notStrictEqual(actual, expected, [message])__ - Tests strict non-equality, as determined by the strict not equal operator ( !== ) * __throws(block, [error], [message])__ - Expects block to throw an error. * __doesNotThrow(block, [error], [message])__ - Expects block not to throw an error. * __ifError(value)__ - Tests if value is not a false value, throws if it is a true value. Useful when testing the first argument, error in callbacks. Nodeunit also provides the following functions within tests: * __expect(amount)__ - Specify how many assertions are expected to run within a test. Very useful for ensuring that all your callbacks and assertions are run. * __done()__ - Finish the current test function, and move on to the next. ALL tests should call this! Nodeunit aims to be simple and easy to learn. This is achieved through using existing structures (such as node.js modules) to maximum effect, and reducing the API where possible, to make it easier to digest. Tests are simply exported from a module, but they are still run in the order they are defined. __Note:__ Users of old nodeunit versions may remember using ok, equals and same in the style of qunit, instead of the assert functions above. These functions still exist for backwards compatibility, and are simply aliases to their assert module counterparts. Asynchronous Testing -------------------- When testing asynchronous code, there are a number of sharp edges to watch out for. Thankfully, nodeunit is designed to help you avoid as many of these pitfalls as possible. For the most part, testing asynchronous code in nodeunit _just works_. ### Tests run in series While running tests in parallel seems like a good idea for speeding up your test suite, in practice I've found it means writing much more complicated tests. Because of node's module cache, running tests in parallel means mocking and stubbing is pretty much impossible. One of the nicest things about testing in javascript is the ease of doing stubs: var _readFile = fs.readFile; fs.readFile = function(path, callback){ // its a stub! }; // test function that uses fs.readFile // we're done fs.readFile = _readFile; You cannot do this when running tests in parallel. In order to keep testing as simple as possible, nodeunit avoids it. Thankfully, most unit-test suites run fast anyway. ### Explicit ending of tests When testing async code its important that tests end at the correct point, not just after a given number of assertions. Otherwise your tests can run short, ending before all assertions have completed. Its important to detect too many assertions as well as too few. Combining explicit ending of tests with an expected number of assertions helps to avoid false test passes, so be sure to use the test.expect() method at the start of your test functions, and test.done() when finished. Groups, setUp and tearDown -------------------------- Nodeunit allows the nesting of test functions: exports.test1 = function (test) { ... } = { test2: function (test) { ... }, test3: function (test) { ... } } This would be run as: test1 group - test2 group - test3 Using these groups its possible to add setUp and tearDown functions to your tests. Nodeunit has a utility function called testCase which allows you to define a setUp function, which is run before each test, and a tearDown function, which is run after each test calls test.done(): var testCase = require('nodeunit').testCase; module.exports = testCase({ setUp: function (callback) { = 'bar'; callback(); }, tearDown: function (callback) { // clean up callback(); }, test1: function (test) { test.equals(, 'bar'); test.done(); } }); In this way, its possible to have multiple groups of tests in a module, each group with its own setUp and tearDown functions. Running Tests ------------- Nodeunit comes with a basic command-line test runner, which can be installed using 'sudo make install'. Example usage: nodeunit testmodule1.js testfolder [...] The default test reporter uses color output, because I think that's more fun :) I intend to add a no-color option in future. To give you a feeling of the fun you'll be having writing tests, lets fix the example at the start of the README: <img src="" /> Ahhh, Doesn't that feel better? When using the included test runner, it will exit using the failed number of assertions as the exit code. Exiting with 0 when all tests pass. ### Command-line Options * __--reporter FILE__ - you can set the test reporter to a custom module or on of the modules in nodeunit/lib/reporters