Фон
Я работаю над проектом, который построен на Бессерверной инфраструктуре с serverless-appsync-plugin . Я реализовал одну конечную точку (AWS Lambda) для обработки всех запросов, генерируемых из Appsync через graphQL. Конечная точка направит запрос в соответствующую функцию для выполнения операции.
Задача
Теперь, когда я разработал около 10+ операций, я хочу автоматизировать процесс модульного тестирования. Для простоты я решил запустить эту единственную конечную точку в качестве лямбды локально для всего тестирования (против запуска appsync-offline).
Итак, я использовал лямбда-локальный с мокко . Тем не менее, я не могу получить тест-кейс для сбоя, основываясь на ответе, который я получил от лямбды.
it('db should have a user of uId: 123', async function () {
lambdaLocal.execute({
event: makeUserEvent({userId: '123'}),
callbackWaitsForEmptyEventLoop: false,
lambdaPath,
callback: function(err, data) {
if(err) {
console.log(1)
expect.fail(null, null, 'You are not supposed to be here') //should fail here
} else {
console.log(2)
// some checking here, may fail or may not fail
expect.fail(null, null, 'return fail if the userId is 234') //should fail here too
}
}
});
console.log(3)
})
В обеих ситуациях я хочу, чтобы это не сработало, это не сбои тестовых случаев для callback('failed', null)
или callback(null, 'success')
.
Итак, как правильно сделать лямбда-локальный код неудачным для теста?