我的问题是关于使用 Mocha 对 JavaScript 代码进行单元测试。最终这可能是一个关于依赖注入或控制反转的问题,我对这些概念的理解很差。
我正在尝试编写一个测试,它只是创建一个 header.js 的实例并测试它是一个对象。但是,每当我这样做时,我的测试在加载 Modernizr 时就会爆炸,并显示以下错误消息。这似乎是因为 Modernizr 依赖于在浏览器内部运行,但我的单元测试需要在命令行上运行。
/lib/modernizr.js:8
“MozAppearance”在 l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNod ^ TypeError: 无法读取 /Users/devadmin/devenv/djscript 中未定义的属性 'parentNode' /djscript-vendor/lib/modernizr.js:8:6291
我有一些 requirejs 模块,它们位于以下层次结构中:
lib
└── pj
├── module
│ └── header
│ └── header.js
├── util
│ └── header
│ └── Util.js
└── widget
└── header
├── Header.js
└── view
├── HeaderView.js
└── NavView.js
header.js 实例化 Header.js,后者依次创建 HeaderView 和 NavView。只有 HeaderView 需要 Modernizr。
关于如何使此代码进入可测试状态的任何提示?看看我如何打包 Modernizr 以与 requirejs 一起使用会有所帮助吗?