问题
wallaby.js似乎没有与茉莉花callFake合作。我想使用传递给“假”函数中的原始函数的参数。但我总是把undefined和wallaby联系在一起。
下面的测试在直接运行jasmine时有效,但在通过wallaby运行时会中断。
其他人也发生过这种事吗?有什么解决办法吗?
测试
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配置文件
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
发布于 2018-04-01 06:46:20
这是Jasmine 2.x支持的一个bug,在壁虎它是固定的不w中。
发布于 2018-04-01 06:02:41
我找到了一个解决办法:
我在callFake函数中使用了对间谍的引用。见下面的代码:
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);
});但我仍然认为这是不恰当的行为。
https://stackoverflow.com/questions/49595096
复制相似问题