Насмешка в гнезде JS довольно легко получить с помощью инструментов тестирования, которые выставляет Nest @nestjs/testing
. Короче говоря, вы захотите создать Custom Provider для зависимости, которую вы хотите смоделировать, и это все, что есть. Тем не менее, всегда лучше увидеть пример, так что здесь есть возможность макета для контроллера:
describe('UserController', () => {
let controller: UserController;
let service: UserService;
beforeEach(async () => {
const moduleRef = await Test.createTestingModule({
controllers: [UserController],
providers: [
{
provide: UserService,
useValue: {
get: jest.fn(() => mockUserEntity) // really it can be anything, but the closer to your actual logic the better
}
}
]
}).compile();
controller = moduleRef.get(UserController);
service = moduleRef.get(UserService);
});
});
И оттуда вы можете go включить и написать свои тесты. Это почти то же самое, что и для всех тестов, использующих систему DI от Nest. Единственное, о чем нужно знать, это такие вещи, как @InjectRepository()
и @InjectModel()
(Mon goose и декораторы Sequilize), где вам нужно будет использовать getRepositoryToken()
или getModelToken()
для токена инъекции. Если вы ищете больше примеров , посмотрите на этот репозиторий