【发布时间】:2019-11-03 07:38:20
【问题描述】:
我有以下测试:
const AWSMock = require('aws-sdk-mock');
const AWS = require('aws-sdk');
const sinon = require('sinon');
function sendMetric() {
const cloudwatch = AWS.CloudWatch();
cloudwatch.putMetricData();
}
describe('Meh', () => {
it('meh', () => {
let sendMetricSpy = sinon.spy();
AWSMock.mock('CloudWatch', 'putMetricData', sendMetricSpy);
sendMetric();
expect(sendMetricSpy.calledOnce).toEqual(true);
});
});
我希望测试通过,因为我已经按照the documentation 所说的做了。这是我试图在我的实际代码中实现的一个精炼示例。
运行测试的实际输出是:
FAIL functions/monitor/__test__/j.test.js
Meh
✕ meh (10ms)
● Meh › meh
expect(received).toEqual(expected) // deep equality
Expected: true
Received: false
14 | AWSMock.mock('CloudWatch', 'putMetricData', sendMetricSpy);
15 | sendMetric();
> 16 | expect(sendMetricSpy.calledOnce).toEqual(true);
| ^
17 | });
18 | });
19 |
我不知道如何进一步解决此问题。
我也试过setting the aws-sdk object explicity,结果一样。
我做错了什么?
【问题讨论】:
标签: node.js jestjs aws-sdk sinon aws-sdk-mock