作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对一些存储为模块的 ES6 类进行单元测试。但是,当我尝试运行测试时,import
触发错误消息:Cannot use import statement outside a module
这意味着我无法测试我的模块。
所有 Jasmine 示例都使用旧的 ES5 语法,其类定义为 function
s 使用 modules.export
然后使用 require
导入功能。我找到了诸如 this 之类的网站。他们似乎在哪里使用 ES6 和 import { module } from 'path'
语法,但我不知道为什么这行得通,为什么我的不行?是因为我没有使用 headless 浏览器进行测试吗?这是因为 Jasmine 本身不支持这个功能,我需要一些其他的包吗?是不是因为我需要使用jasmine-node
以某种特定的方式让它工作?我应该根本不使用 ES6 类吗?
很明显,我是 node 和 javascript 的初学者,但我没想到仅仅测试一个类的功能会如此困难,所以如果有人能给我一些关于 的指导的话如何在 Jasmine 中完成对类模块的测试我将不胜感激 .
例如我有一个模块。
// src/myClass.mjs
export class MyClass {
constructor() { }
}
// 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)
})
})
最佳答案
我可能迟到了,但是在 Nodejs 中使用“import”语句并不像看起来那么简单。
require 和 import 之间几乎没有主要区别(例如异步),因此不能简单地将其转换为另一种。
**
import { rollup } from "rollup";
export default {
input: './index.js',
output: {
file: 'dist/index.js',
format: 'cjs' //cjs stands for common js file
}
};
关于javascript - 如何将 ES6 类模块导入 Jasmine 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61985831/
我是一名优秀的程序员,十分优秀!