我正在使用ES6,我想开始使用mocha& amp;柴
我当前的测试文件代码是:
const assert = require('chai').assert;
var app = require('../../../../src/app/login/loginController').default;
describe('login Controller tests', function(){
it('no idea ', function(){
let result = app();
assert.equal(result, 'hello');
})
})
我的loginController.js是:
class LoginController {
checkout(){
return 'hello';
}
}
export default LoginController
我想要导入'结帐'函数到我的测试文件中的变量,但到目前为止我只能导入该类。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
您无法直接从类导入方法。如果要导入没有类作为中介的函数,则需要在类外部定义函数。或者,如果您真的想要checkout
作为实例方法,那么您需要在实例上调用它。
这是一个源自您的示例文件:
export class LoginController {
// Satic function
static moo() {
return "I'm mooing";
}
// Instance method
checkout() {
return "hello";
}
}
// A standalone function.
export function something() {
return "This is something!";
}
一个测试文件,它运行所有功能,根据您在问题中显示的文件进行调整:
const assert = require('chai').assert;
// Short of using something to preprocess import statements during
// testing... use destructuring.
const { LoginController, something } = require('./loginController');
describe('login Controller tests', function(){
it('checkout', function(){
// It not make sense to call it without ``new``.
let result = new LoginController();
// You get an instance method from an instance.
assert.equal(result.checkout(), 'hello');
});
it('moo', function(){
// You get the static function from the class.
assert.equal(LoginController.moo(), 'I\'m mooing');
});
it('something', function(){
// Something is exported directly by the module
assert.equal(something(), 'This is something!');
});
});