itworksjs
v1.2.0
Published
A simple unit testing library
Downloads
3
Readme
itworks
A simple node unit testing library. It is completly error driven and doesn't need any additional dependencies.
Installation
npm install --save-dev itworksjs
Usage
Create a test file, and set it as npm test
in the package.json
file. In the test file, follow this example:
const {it, works} = require("itworksjs")
it("should be able to evaluate expressions", ()=>{
if(1+1*2 != 3){
throw new Error(`Evaluated 1+1*2 as ${1+1*2} instead of 3`)
}
})
it("should think 1+1=3",()=>{
if(1+1 != 3){
throw new Error(`Evaluated 1+1 as ${1+1} instead of 3`)
}
})
works()
Then, when testing
[O]: It should be able to evaluate expressions
[X]: It should think 1+1=3 FAILED: Evaluated 1+1 as 2 instead of 3
Tests Finished, Result: 1/2 Passed
Example using functions
// tested.js
function a(y,z){
return z+y
}
function b(y,z){
return y-z
}
module.exports = {a:a}
// test.js
const {it, works, functions} = require("itworksjs")
const {a,b} = functions(["a", "b"]).from("./tested.js")
it("should be able to add", ()=>{
if(a(1,1) != 2){
throw new Error(`a(1,1) = ${a(1,1)}`)
}
})
it("should be able to substract", ()=>{
if(b(3,4) != -1){
throw new Error(`b(3,4) = ${b(3,4)}`)
}
})
works()
Which gives the result:
[O]: It should be able to add
[O]: It should be able to substract
Tests Finished, Result: 2/2 Passed
It Works!
Functions
it(message, code)
: Takes a message (text displayed when testing and identifier) and a function, and adds it to a globaltests
object (which is created if it doesn't already exist).works()
: Tests all functions in thetests
object, considers them failed if they throw an error (which is displayed). The function also returns [passedTests, totalTests].functions(functionlist).from(file)
: Similar to the require function. Imports the functions (given as an array of strings) even if they are not inmodule.exports
.arrayEquals(array1, array2)
: Checks recursively if two arrays are equal.
Note
console
functions were replaced with empty ones, to suppress console logs. Use the new console.print
function instead.