Я новичок в Jest. Я сумел издеваться над своими вещами, но, похоже, застрял в издевательстве над модулем. В частности, конструкторы.
usage.js
const AWS = require("aws-sdk")
cw = new AWS.CloudWatch({apiVersion: "2010-08-01"})
...
function myMetrics(params) {
cw.putMetricData(params, function(err, data){})
}
Я бы хотел сделать что-то подобное в тестах.
const AWS = jest.mock("aws-sdk")
class FakeMetrics {
constructor() {}
putMetricData(foo,callback) {
callback(null, "yay!")
}
}
AWS.CloudWatch = jest.fn( (props) => new FakeMetrics())
Однако, когда я использую его в usage.js
cw - это mockConstructor
не FakeMetrics
Я понимаю, что мой подход может быть "меньше, чем идиоматический", поэтому я был бы готов к любым указателям.
Это минимальный пример https://github.com/ollyjshaw/jest_constructor_so
npm install -g jest
jest