itworksjs
Version:
A simple unit testing library
89 lines (69 loc) • 2.33 kB
Markdown
# 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:
```javascript
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`
```javascript
// 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 global `tests` object (which is created if it doesn't already exist).
- `works()`: Tests all functions in the `tests` 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 in `module.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.