2012-05-03 6 views
0

私のモカテストで私のクラスを認識させる(ブラウザでモカを動かす)ための規約は何ですか?両方が閉鎖に包まれていない、どちらもグローバルスコープにある...ブラウザでCSクラスをMochaでテストしますか?

Can't find the Monkey class due to the fact it's not global, I think...


monkey.spec.coffee

describe "Monkey", -> 
    it "adds two to the given number", -> 
    expect Monkey.add2(4).to.equal(6) 

monkey.coffee

されているので、
class Monkey 

test_runner.html

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Mocha Test Runner</title> 
    <meta charset="utf8"> 
    <link rel="stylesheet" href="mocha.css"> 
    <script src="mocha.js"></script> 
    <script src="expect.js"></script> 
    <script> 
     mocha.setup('bdd'); 
    </script> 

    <!-- Load in files under test --> 
    <script src="monkey.js"></script> 

    <!-- Load in spec files --> 
    <script src="monkey.spec.js"></script> 
    </head> 
    <body> 
    <div id="mocha"></div> 

    <script> 
     mocha.run(); 
    </script> 
    </body> 
</html> 
+0

[CoffeeScriptで定義されたクラスはJasmineの仕様では見つかりません](http://stackoverflow.com/questions/8310329/classes-defined-in-coffeescript-not-found-by-jasmine-specs) –

答えて

2
class Monkey 

は、ファイル内のスコープだMonkeyクラスを作成します。あなたは

class window.Monkey 

略して

class @Monkey 

をしたいです。

+0

ウォン'Monkey'をグローバルにする効果があるのでしょうか?私は必ずしも「猿」が世界的であることを望んでいませんが、私は自分の検査でその存在を知りたいのですか?これを正しく理解していませんか? – neezer

+0

ブラウザベースのJavaScriptにはリンカーがないため、(各ファイルにラッパーがあるので)変数を単一のファイルの外側で表示できる唯一の方法は、どこにでも表示できるようにすることです。テストモードであれば、 'Monkey'だけをエクスポートするようにコードを追加することができます。 –

+0

Gotcha、意味があります。説明をありがとう。 – neezer

関連する問題