OPK*_*PKD 5 javascript unit-testing jasmine ecmascript-6 es6-class
我想对一些存储为模块的 ES6 类进行单元测试。但是,当我尝试运行测试时,import会触发一条错误消息:Cannot use import statement outside a module这意味着我无法测试我的模块。
所有 Jasmine 示例都使用旧的 ES5 语法,其中的类function使用定义为s modules.export,然后使用require函数导入。我发现像这样的网站似乎使用 ES6 和import { module } from 'path'语法,但我不知道为什么这行得通,为什么我的不行?是不是因为我没有使用无头浏览器进行测试?是因为 Jasmine 本身不支持此功能,我需要其他一些包吗?是因为我需要以jasmine-node某种特定的方式使用才能让它工作吗?我根本不应该使用 ES6 类吗?
很明显,我是 node 和 javascript 的初学者,但我没想到仅仅测试一个类的功能会这么困难,所以如果有人能给我一些关于如何在 Jasmine 中完成测试类模块的指导我将不胜感激。
例如我有一个模块。
// src/myClass.mjs
export class MyClass {
constructor() { }
}
Run Code Online (Sandbox Code Playgroud)
我有一个简单的 Jasmine 单元测试。
// spec/myClassSpec.js
import { MyClass } from '../src/myClass.mjs'
describe('my class', function() {
var myClassInstance
beforeEach(function() {
myClassInstance = new MyClass()
})
it('is an instance of MyClass', function() {
expect(myClassInstance).toBeInstanceOf(MyClass)
})
})
Run Code Online (Sandbox Code Playgroud)
小智 2
我可能迟到了,但是在 Nodejs 中使用“import”语句并不像看起来那么简单。require 和 import 之间几乎没有什么主要区别(比如异步),因此不能简单地将其转换为另一种。**
**。完成模块后,您可以使用 rollup 将此模块捆绑为 commonjs 文件。然后可以使用该文件进行测试。
安装汇总
npm 安装汇总 --save-dev
安装汇总后,您需要将以下命令添加到“package.json”文件的脚本中
“dist”:“汇总-c”
您的应用程序的根文件夹中需要有一个 rollup.config.js 文件。rollup.config.js 的内容是:
import { rollup } from "rollup";
export default {
input: './index.js',
output: {
file: 'dist/index.js',
format: 'cjs' //cjs stands for common js file
}
Run Code Online (Sandbox Code Playgroud)
};
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |