wallaby.js
似乎没有使用茉莉花callFake
。我想在" fake"中使用传递给原始函数的参数。功能。但我总是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);
});
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 */) => {
},
};
};
Visual Studio Code v1.21.1
OSX 10.13.3
答案 0 :(得分:1)
这是小袋鼠it is fixed no w中的Jasmine 2.x支持中的一个错误。
答案 1 :(得分:0)
我找到了解决方法:
我在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);
});
但我仍然认为这不是正确的行为。