fn
has testing built in that allows you to create inputs and expected outputs and verify the expected output with actual output.
Create a file called test.json
in your functions directory (beside your func.yaml
file). Here's a simple example:
{
"tests": [
{
"input": {
"body": {
"name": "Johnny"
}
},
"output": {
"body": {
"message": "Hello Johnny"
}
}
},
{
"input": {
"body": ""
},
"output": {
"body": {
"message": "Hello World"
}
}
}
]
}
The example above has two tests, one with the following input:
{
"name": "Johnny"
}
and a second one with no input.
The first one is expected to return a json response with the following:
{
"message": "Hello Johnny"
}
And the second should return:
{
"message": "Hello World"
}
In your function directory, run:
fn test
You can also test against a remote fn
server by using the --remote
flag. eg:
fn test --remote myapp
To test your entire Fn application:
fn test --all