我遇到了一个无法解释的行为。
使用
如果失败了,我会看到以下错误信息:
import
或者require
,这个测试可以成功(import
),也可能失败(require
)。如果失败了,我会看到以下错误信息:
下面是代码:PhantomJS 2.1.1 (Windows 7 0.0.0) immutability a number is immutable FAILED undefined is not a constructor (evaluating 'expect((0, _immutable.List)([1])). toEqualImmutable((0, _immutable.List)([1]))')
import { Map, List } from 'immutable';
const expect = require("expect");
// import expectImmutable from "expect-immutable";
const expectImmutable = require("expect-immutable");
expect.extend(expectImmutable);
describe("immutability", () => {
describe("a number", () => {
function increment(currentState) {
return currentState + 1;
}
it("is immutable", () => {
expect(List([1])).toEqualImmutable(List([1]));
expect(Map({ a: 1 })).toEqualImmutable(Map({ a: 1 }));
let state = 42;
let nextState = increment(state);
expect(List([nextState])).toEqualImmutable(List([43]));
expect(List([state])).toEqualImmutable(List([42]));
});
});
});
有没有人能解释一下幕后正在发生的事情?
require
和转译后的import
(也将是require
)之间的区别呢? - zerkmsrequire("expect").default
和require("expect-immutable").default
。 - maioman