2016-05-29 6 views
2

何かがChai.shouldの関数であるかどうかをチェックしたいと思います。だから私は何かがChai.shouldの関数であるかどうかをテストする方法

typeof(barfoo).should.equals('function') 

DEMO

これは

になりました
AssertionError: expected [Function] to equal 'function' 
    at Context.<anonymous> (:73:31) 

これが動作しない理由を誰かが、私に説明することができるので、私は単純に

typeof(barfoo) 

Iをすれば文字列functionを取得します。私はinstanceOfで、今これを解決してきましたが、私は本当にあなたが、あなたを見ることができるようにあなたが余分な括弧

(typeof(barfoo)).should.equals('function') 

を必要とし、この

答えて

4

は、そうでなければ、あなたの表現が

typeof ((barfoo).should.equals('function')) 

として解釈されて理解したいが、 typeof barfooの代わりにをbarfooと呼び出して、最終結果のタイプを取得して破棄してください。

それは、それが機能単項演算子[1]で、会員アクセス演算子(.)と関数呼び出し[2]よりも低い優先順位を持っていないtypeofためです。したがって、typeofはこの式の最後に評価されます。ここで

+4

これが正しい答えですが、ちょうどアサーションがbarfoo.should.be.a 'を介して行うことができます追加したいと思います(」 function ') ' – Dve

8

barfooが関数であるかどうかをチェックする方法です。

barfoo.should.be.a('function'); 
+0

私が探していたものとまったく同じです、ありがとう。 – AkkarinZA

関連する問題