Testing

Testing is an important aspect of every application. Manually testing new features and simultaneously ensuring the stability of existing functionality is tedious. You don’t want to send dozens of request or visit all affected pages to verify the functionality.

Introduction

Boost includes a testing utility called base-test. This testing utility is an implementation on top of AVA. AVA is a test runner taking advantage of parallel test runs through Node.js’s async nature.

The base-test abstracts the common AVA callback-style testing to a class-based testing. The benefit of class-based testing in Boost is that you can built your tests with helpers provided by the framework.

The default Boost application comes with a test directory. The test directory is the place where you put all your test files. Inside of test, you’ll find the integration and unit directories. Put your files in one of the two folders, depending on the type of test you write.

Unit tests focus on a small piece of your code, mostly on a single method. Integration tests in contrast test a multiple aspects of your code and how they interact with each other. Imagine an integration test like a request from an end user against your application.

Environment

Running tests in Boost will automatically set up a testing environment. Boost sets the NODE_ENV=testing environment variable and also initializes the global helper functions. All globals are available in your tests as they are during application development.

In the testing environment, Boost tries to load the configuration from an .env.testing file. The .env.testing file should be located in the root of your project. Notice that Boost won't load the .env file in the testing environment.

Run Tests

To test your application run the following command from your terminal:

npm test

The npm test command is defined in the package.json file. This file is located in Boost’s root directory. If you want to use another Node.js test runner, go ahead and update the command to your needs.

Run a Single Test

Running npm test from your terminal will process all existing test files. Use the npm run test-single command to run a single test:

npm run test-single <testMethodName>

The <testMethodName> represents the class method that you want to test. AVA compares the given parameter value with the registered tests and only runs the matches.

Ignored Files and Folders

Boost will ignore the directories named fixtures, helper and node_modules when running tests. Boost also ignores all files if the file name starts with an underscore _. This convention lets you put helper files in the same directory as your test files.