Горячий для моделирования функций с различными типами возвращаемых значений? - PullRequest
1 голос
/ 13 апреля 2019

Я использую Jest для написания юнит-тестов на NodeJS. Существует метод, который может возвращать одну сущность или массив сущностей. Когда я пытаюсь смоделировать возвращаемое значение этого метода, я просто могу передать массив, но мне нужен один объект.

npm i jest typeorm

const manager = new EntityManager(null);
const sale = new Sale();
jest.spyOn(manager, 'create').mockReturnValue(sale);  

Последняя строка вызывает ошибку: Argument of type 'Sale' is not assignable to parameter of type '{}[]'. Type 'Sale' is missing the following properties from type '{}[]': length, pop, push, concat, and 26 more.

1 Ответ

0 голосов
/ 13 апреля 2019

Вы можете использовать withArgs для достижения этой цели,

withArgs (… args) →

Указывает стратегию, которая будет использоваться для вызовов шпиона с указаннымАргументы

Например:

spyOn(something, 'func').withArgs(arg1).returnValue(obj);

Затем снова spyOn с разными для различных returnValue

spyOn(something, 'func').withArgs(arg2).returnValue(arrayValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...