首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wallaby.js不和茉莉花callFake一起工作(.)?

Wallaby.js不和茉莉花callFake一起工作(.)?
EN

Stack Overflow用户
提问于 2018-04-01 05:29:29
回答 2查看 131关注 0票数 0

问题

wallaby.js似乎没有与茉莉花callFake合作。我想使用传递给“假”函数中的原始函数的参数。但我总是把undefinedwallaby联系在一起。

下面的测试在直接运行jasmine时有效,但在通过wallaby运行时会中断。

其他人也发生过这种事吗?有什么解决办法吗?

测试

代码语言:javascript
复制
it('test callFake and wallaby', async () => {
  // Arrange
  const myObj = {
    myFunc: (a) => a + 1,
  };

  spyOn(myObj, 'myFunc')
    .and.callFake(arg => arg);

  // Act
  const result = myObj.myFunc(1);

  // Assert
  expect(result).toBe(1);
});

相关信息

Wallaby.js配置文件

代码语言:javascript
复制
module.exports = (wallaby) => {
  return {
    files: [
      'src/**/*.js',
      'migrations/*',
      'test/_helpers/*',
      'seeds/*',
      'config/*',
      { pattern: '.env', instrument: false },
    ],

    tests: [
      'test/**/*.spec.js',
    ],

    compilers: {
      '**/*.js': wallaby.compilers.babel(),
    },

    testFramework: 'jasmine',

    env: {
      type: 'node',

      params: {
        env: 'NODE_ENV=test;MONGODB_CONQUERY=mongodb://localhost:27017/athena-test',
      },
    },
    workers: {
      initial: 1,
      regular: 1,
      restart: true,
    },

    setup: (/* wallaby */) => {
      require('dotenv').load({ path: '.env' }); // eslint-disable-line
      require('./test/_helpers/dropDatabase'); // eslint-disable-line
    },

    teardown: (/* wallaby */) => {
    },
  };
};

代码编辑器或IDE名称和版本

Visual代码v1.21.1

操作系统名称和版本

OSX 10.13.3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-01 06:46:20

这是Jasmine 2.x支持的一个bug,在壁虎它是固定的不w中。

票数 1
EN

Stack Overflow用户

发布于 2018-04-01 06:02:41

我找到了一个解决办法:

我在callFake函数中使用了对间谍的引用。见下面的代码:

代码语言:javascript
复制
it('test callFake and wallaby', async () => {
    // Arrange
    const myObj = {
      myFunc: (a) => a + 1,
    };

    const spy = spyOn(myObj, 'myFunc')
      .and.callFake(
        () => spy.calls.argsFor(0)[0]
      );
    // Act
    const result = myObj.myFunc(1);

    // Assert
    expect(result).toBe(1);
  });

但我仍然认为这是不恰当的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49595096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档