当前位置: 首页 > 知识库问答 >
问题:

node.js正弦子替换法

柴瀚昂
2023-03-14

我是新来的sinon,无法实现我想要的结果。

我试图存根AWS S3 APIgetObject返回测试提供的对象。

我的生产代码有:

let s3 = new AWS.S3({ apiVersion: '2006-03-01' });
let params = {
  Bucket: aws_bucket,
  Key: path
};

s3.getObject(params, function(err, data) {
    ...
    });

我的测试代码有:

describe('GET /image', function() {
  beforeEach(function() {
    let stub = sinon.createStubInstance(AWS.S3);
    stub.getObject.callsFake(() => { console.log('stubbed'); });
  });

当我运行测试时,AWS S3类实例被完全截短了,这很好,但它并没有调用我的fake。

我错过了什么?

共有1个答案

经俊茂
2023-03-14

我找到了一个有效的方法。

步骤1:包装AWS。S3实例在另一个模块中。

// s3.js

var AWS = require('aws-sdk');

var s3 = new AWS.S3({ apiVersion: '2006-03-01' });
module.exports = s3;

第2步更改生产代码以使用此实例,而不是创建自己的实例。

// image.js

var s3 = require('./s3');
// ... other code ...
s3.getObject(...);

第三步存根需要存根的东西。

// image-test.js
var s3 = require('./s3');

var getObjectStub;

describe('GET /image', function() {
  beforeEach(function() {
    getObjectStub = sinon.stub(s3, 'getObject').callsFake(() => { console.log('stubbed'); });
  });

  afterEach(() => {
    getObjectStub.restore();
  });
  // test code continues
});
 类似资料:
  • Parameter Position参数位置 Type类型 Required必需 Default默认 Description 1 string Yes n/a This is the regular expression to be replaced. 替换正则表达式. 2 string Yes n/a This is the string of text to replace with. 用来替

  • 问题内容: 我正在尝试使用正则表达式替换字符串中所有出现的英国汽车登记信息。 当字符串与以下正则表达式完全匹配时,以下swift代码可完美地用于a。 结果是 但是,以下操作无效,并且字符串未修改 结果是 谁能给我任何指示? 问题答案: 您需要删除和锚点。 该装置 开始字符串 和手段 结束字符串 (或行,这取决于选项)。这就是第一个示例起作用的原因:在第一个测试字符串中,字符串的开头实际上是您的模式

  • 我试图在y有最高值时显示x位置。在if语句中,我试图将y值与120进行比较,但它似乎从来都不是真的,所以它没有使用文本函数显示我的x位置。我也试着取整y值,但结果仍然不是我想要的。有人能帮我吗?

  • 我正在做一个项目,我想通过组合不同的正弦波来产生(简单的)声音。我使用的是arduino mkrZero,因为它内置了I2S接口,似乎有足够的处理能力来满足我的需求。 教程代码工作得很好,我从扬声器中得到了一个简单的方波音调。 现在我修改了生成正弦波的代码,有一个sin函数的查找表,使其足够快: 如果我稍微修改一下代码,然后写 而不是 一切都破裂了,扬声器发出的声音听起来像是可怕的尖叫 //阻塞

  • 我试图使用UpdateRecord1.9.0处理器修改一个JSON,但它并没有像我想要的那样替换这些值。 和'id'和'value',而ID则使用'userid'字段来代替'id'和'value'。 为了填充userId的值,我定义了replace策略和要replace的属性:strategy 但输出是错误的。userId总是用数组中最后一个元素的id填充: 我做错了什么? 谢谢

  • 问题 你需要用另一个值替换字符串的一部分。 解决方案 使用 JavaScript 的 replace 方法。它与给定字符串匹配,并返回已编辑的字符串。 第一个版本需要 2 个参数:模式和字符串替换 "JavaScript is my favorite!".replace /Java/, "Coffee" # => 'CoffeeScript is my favorite!' "foo bar b