У меня есть такая функция:
class MyClass
constructor(private readonly simpleInstance: SomeOtherClass) {}
get myGetter() {
if(!simpleInstance) {
throw Error('Bad thing')
}
return simpleIntance.id
}
Я хочу написать тестовый пример, где simpleInstance = null
У меня много проблем с макетом simpleInstance
Вот мой тест и несколько опций, которые я попробовал.
Примечание: я использую NestJs
, так что в моих тестах есть шаблон внедрения зависимостей, который я удалил для краткости. TL; DR : инициализированный SomeOtherClass
передается в MyClass
во время создания экземпляра.
describe('MyClass', () => {
let myClassInstance: MyClass
let someOtherClassMock: jest.Mock<SomeOtherClass>
beforeEach(() => {
someOtherClassMock = jest.fn()
myClassInstance = new MyClass(someOtherClassMock)
})
it('should throw an error if injected simpleInstance is null', () => {
userMock = ........ // <--- Setting up the mocked value is where I have trouble
expect(() => myClassInstance.myGetter).toThrow(Error('Bad thing'))
})
})
Я пытался вернуть ложные значения, шпионить за someOtherClassMock
и возвращать значение, et c.
Как мне это сделать?