jest-fuzz
v0.1.2
Published
Fuzz testing for jest
Downloads
736
Readme
jest-fuzz
Fuzz testing for jest
Installing
use your favorite package manager
$ yarn add jest-fuzz
$ npm install jest-fuzz
Using
Import the test suite in your test code.
const Fuzz = require('jest-fuzz');
...
Creating a test
First of all, you need to use the Fuzz.test
instead of Jest's test
and what's the difference?
Basically Fuzz.test
create a wrap to all random data that it will generate for your code.
Now, this is how a test has to will be described.
Fuzz.test("Name", Fuzzer, (data) => {
//expectations
}
where,
- Name -> String representing the name of this suite
- Fuzzer -> A fuzzer function that you can see below
- Callback (data) -> This callback is where your tests will be, and the data param is a random data to your test.
Fuzzers
Fuzzers are the data representation of what you need to test.
for example, if you have a function that needs a string, you can use Fuzz.string()
also, pass the parameters for this string.
these are the built-in fuzzers
| Fuzzer | Options | |-------------|----------------------------------------------------------------------------------------| | Fuzz.string | { length: Int (default=125), sufix: String (default=''), prefix: String (default='') } | | Fuzz.int | { Min: Int (default=-Infinity), max: Int (default=Infinity) } | | Fuzz.float | { Min: Int (default=-Infinity), max: Int (default=Infinity) } | | Fuzz.bool | | | Fuzz.array | { type: Fuzzer (default=Int), length: Int (default=300), minLength: Int (default=1) } |
Creating a custom fuzzer
The custom fuzzer is a way to represent an object or other complex data.
To create you simply need to use the Fuzz.Fuzzer
function
const exampleFuzzer = Fuzz.Fuzzer({
method1: Fuzz.string(),
method2: Fuzz.int()
});
Fuzz.test("My example", exampleFuzzer(), data => {
// Test data.
}
Fuzz.it("My example", exampleFuzzer(), data => {
// Test data.
}