0.1.7 • Published 9 years ago
mactest v0.1.7
mactest
A NodeJS/Express library for quick'n dirty unit testing
Install it
npm install mactest
Use it
Configure with Express
Assuming you are running a server with express, this will create a page available at http://yourserver.host/mactest, where your tests will be listed, and can be executed
express = require('express') ;
mactest = require('mactest') ;
app = express() ;
app
.use(express.compress())
.use(express.logger())
.use(app.router) ;
mactest.configure({rootPath: '/mactest', excludeSampleTests: false})
mactest.routes(app)
Define your test suites
Say we want to test a module that resolves url redirects
mactest = require('mactest') ;
function resolve(url, callback) {..};
module.exports = resolve ;
mactest.add( 'util functions > url resolve', function(result, fn){
var short = 'http://bit.ly/19VYAIz' ;
result.info('Will try to resolve url', short) ;
resolve(short, function(err, resolved){
if (resolved==='https://github.com/tifroz/mactest') {
result.success('succesfully resolved', 'resolved to %s', resolved) ;
} else if (resolved) {
result.failure('resolved but with incorrect value', 'resolved to %s', resolved) ;
}
fn(err, result)
})
})
Now your browser should show a util functions > url resolve link when you got to http://my.host/mactest (and you can execute the test & visualize the outcome by clicking the link)
API
mactest.configure(options)
to configure mactest
options is a hash with 2 keys:
rootPath
(string, defaults to/mactest
) is the path on your server to access the page where all your tests are listedexcludeSampleTests
(boolean, defaults to false) unless you override, you will see some built-in mock tests in addition to the tests you have defined in your code
mactest.add(name, testFn)
to add a test suite
- name is a string that identifies your test suite
- testFn is your test suite. It's a function with a
(result, callback)
signature. Useresult.info(..), result.failure(..), result.success(..)
any (multiple) time to report failure, info, success at different step of execution, then callcallback(error, result)
after the test suite has completed its execution