私は、DOMフリーのJavaScriptコードをテストするために、誓いを使い、理想的にはコンパイル済みのJSに対して直接実行したいと考えています。 私の誓いはCoffeeScriptで書かれていますが、自分のJSを読み込む方法がわかりません。私はちょうどeval
を使用して、それをインライン化しようとしました:ClosureのテストNode.jsでのコンパイラ出力
vows = require "vows"
assert = require "assert"
eval('var e=this;function f(a,g){var c=a.split("."),b=e;!(c[0]in b)&&b.execScript&&b.execScript("var "+c[0]);for(var d;c.length&&(d=c.shift());)!c.length&&g!==void 0?b[d]=g:b=b[d]?b[d]:b[d]={}}function h(a){a.call(e)};(function(){var a;a={};h(function(){a=function(a){this.a=a};a.prototype.b=function(a){return this.a+a.a};f("Cl.LinearExpression",a);f("Cl.LinearExpression.prototype.plus",a.prototype.b)})}).call(this);');
vows
.describe("Linear Expression")
.addBatch
"initialized with a number":
topic: -> new Cl.LinearExpression 5
"adds up with scalar": (cle) -> assert.equal 7, cle.plus 2
.export(module)
が、私は「にReferenceError:CLが定義されていません」を取得します。 ブラウザコンソールで縮小されたJSとnew Cl.LinearExpression(5);
を実行すると正常に動作するため、コンパイルされたコードは問題ありません。 誓約によるテストのためにJSをノードにロードする最良の方法は何ですか?
backticksを使用してJSをインライン化することができます。これにはevalを使用しないでください。 – thejh