# Testing
# Unit test
# Installation
Ts.ED support officially two unit test frameworks: Jest and Mocha. It's also possible to use your preferred frameworks. Your feedback are welcome
# Usage
Ts.ED provides PlatformTest to create a new context to inject your Services, Controllers, Middlewares, etc... registered with annotations like Injectable .
The process to test any components is the same thing:
- Create a new context for your unit test with
PlatformTest.create
, - Inject or invoke your component with
PlatformTest.inject
orPlatformTest.invoke
, - Reset the context with
PlatformTest.reset
.
Here is an example to test the ParseService:
# Async / Await
Testing asynchronous method is also possible using Promises
(async
/await
):
# Mock dependencies
PlatformTest API provides an invoke
method to create a new instance of your component with mocked dependencies.
TIP
PlatformTest.invoke()
executes automatically the $onInit
hook!
# Test your Rest API
# Installation
To test your API, I recommend you to use the supertest
(opens new window) module.
To install supertest just run these commands:
# Example
WARNING
If you use the PlatformTest, you'll probably get an error when you'll run the unit test:
Platform type is not specified. Have you added at least `import @tsed/platform-express` (or equivalent) on your Server.ts ?
To solve it, just add the import @tsed/platform-express
on your Server.ts
. PlatformTest need this import to know on
which Platform
your server must be executed for integration test.
# Stub a service method
When you're testing your API, you have sometimes to stub a method of a service.
Here is an example to do that:
# Stub a middleware method 6.114.3+
When you're testing your API, you have sometimes to stub middleware to disable authentication for example.
Here is an example to do that:
# Testing session
To install session with Ts.ED see our tutorial.
Last Updated: 4/30/2022, 10:29:07 AM
Other topics
- Session & cookies
- Passport.js
- Keycloak
- Prisma
- TypeORM
- MikroORM
- Mongoose
- GraphQL
- Socket.io
- Swagger
- AJV
- Multer
- Serve static files
- Templating
- Serverless HTTP
- Seq
- OIDC
- Stripe
- Agenda
- Terminus
- Serverless
- IORedis
- Controllers
- Providers
- Model
- JsonMapper
- Middlewares
- Pipes
- Interceptors
- Authentication
- Hooks
- Exceptions
- Throw HTTP Exceptions
- Cache
- Command
- Response Filter
- Injection scopes
- Custom providers
- Lazy-loading provider
- Custom endpoint decorator
- Testing
- Customize 404