Как проверить, выдает ли функция createTempUsageStatisticsTable(athenaExpress)
ошибку, а также проверить, выдает ли createTempUsageStatisticsTable(athenaExpress)
ошибку, потому что функция athenaExpress.query(athenaQueryParam)
выдает ошибку (используя Jest)? (Предположим, что имя файла index.js
)
async function createTempUsageStatisticsTable(athenaExpress) {
let athenaQueryParam = {
sql: getSqlQueries.CREATE_DEVICE_USAGE_STATS_TEMP_TABLE_QUERY,
db: "testdb"
};
await athenaExpress.query(athenaQueryParam);
}
exportFunctions={createTempUsageStatisticsTable:createTempUsageStatisticsTable}
module.exports=exportFunctions
Теперь я хочу написать тест для проверки, если createTempUsageStatisticsTable(athenaExpress)
выдает ошибку, когда athenaExpress.query(athenaQueryParam)
выдает ошибку или отклоняет обещание в фиктивной реализации какой бы ни подходил или работает, так что я сделал
const confError = new Error('network error');
athenaExpress.query = jest.fn().mockImplementationOnce(() => {
throw new Error(confError); // tried this
promise.reject(confError);
})
index.configureAthenaExpress();
expect(index.configureAthenaExpress).toThrow();
Однако тесты, кажется, не проходят, пожалуйста, помогите
Благодаря Джеймсу, я получил это работает, Однако я немного подправил его код, как я был получая некоторую ошибку из-за строгого равенства, код выглядит следующим образом:
test("createTempUsageStatisticsTable throws an exception if
athenaExpress.query fails()", async () => {
const creaError=new Error("network error")
athenaExpress=configureAthenaExpress();
athenaExpress.query.mockRejectedValueOnce(creaError);
await expect(createTempUsageStatisticsTable(athenaExpress)).rejects.toBe(creaError);
});