我正在使用node-qunit-phantomjs
PhantomJS
测试运行器QUnit
。我遇到了障碍,因为我无法在JS库中包含或注入需要测试的代码。
测试文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>color tests</title>
<!-- QUNIT CSS -->
<link rel="stylesheet" href="vendor/qunit.css" type="text/css"/>
<!-- QUNIT JS -->
<script type="text/javascript" src="vendor/qunit.js"></script>
<!-- IGV JS -->
<script type="text/javascript" src="../js/igv-color.js"></script>
<!-- unit test JS -->
<script type="text/javascript" src="testColor.js"></script>
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
runColorTests();
});
</script>
</body>
</html>
正在测试的代码是testColor.js
。
function runColorTests() {
test( "GreyScale Test", 1, function() {
ok(igv.greyScale(45), "grey");
console.log(igv.greyScale(45));
});
test( "RGB Color Test", 1, function() {
ok(igv.rgbColor(12, 123, 23), "rgb");
console.log(igv.rgbColor(12, 123, 23));
});
}
颜色库是igv-color.js
。
var igv = (function (igv) {
igv.rgbColor = function (r, g, b) {
r = clamp(r, 0, 255);
g = clamp(g, 0, 255);
b = clamp(b, 0, 255);
return "rgb(" + r + "," + g + "," + b + ")";
};
igv.greyScale = function (grey) {
grey = clamp(grey, 0, 255);
return "rgb(" + grey + "," + grey + "," + grey + ")";
};
function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
};
return igv;
})(igv || {});
请注意,颜色库的范围是全局变量igv
当我运行测试时:node-qunit-phantomjs ./runTestColor.html
出现错误,因为库函数未被拉入我的代码中。我知道函数page.injectJs
和page.includeJs
,但我认为无法将它们与测试运行器一起使用。
我在这里缺少什么?