をtoBeUndefined、変数がundefined
であるかどうかをチェックでき.not.toBeDefined()
または.toBeUndefined()
マッチを使用して仮定しましたそれらのマッチ、それはしません。私はちょうどこれらの間違いを使用していますか、または何かがundefined
であるかどうか確認するための仕様を書くことはできませんか?ジャスミンは、私はジャスミンに新たなんだ
答えて
問題は、ジャスミンの呼び出しもを発生する前に
expect(obj).toBeUndefined();
がを失敗したということです。定義されていない変数を参照するのは間違いです(新しいブラウザや "厳密な"モードでは少なくとも)。
ではなく、この設定をお試しください:そのコードでit('should not be defined using .tobeUnefined()', function() {
var obj = {};
expect(obj.not_defined).toBeUndefined();
});
は、その値が空のオブジェクトである変数「OBJ」があります。 JavaScriptでは、オブジェクトの存在しないプロパティを参照するのは問題ありません。このような参照の結果はundefined
になるため、テストに合格します。
it('should not be defined using .tobeUnefined()', function() {
var no_value;
expect(no_value).toBeUndefined();
});
洞察に感謝します。 :) –
あなたは次のようにすることもできます: 'expect(typeof obj).toBe( 'undefined')' –
ありがとう、今私はこの動作を得ることができます:describe( "A girl"、function(){ it "、function(){ expect({}。arya).toBeUndefined(); }) }); – Seanonymous
obj is not defined
というエラーが表示されることに注意してください。
objがであるとは限りません。です。
未定義は、実際にはJavaScriptのデータ型です。
割り当てのない宣言された変数には、既定での値が定義されていません。が宣言されていなければなりません。
したがって、値がであるかどうかをテストするときは、と定義されています。obj === undefined
であるかどうかを判断しています。
あなたは
var obj;
を宣言した場合、obj
は未定義テストします。
obj
を宣言していない場合は、ジャスミンマッチャーがのデータ型と比較されるものは何もありません。です。
- 1. はジャスミン
- 2. ジャスミンは
- 3. ジャスミン・ノードは
- 4. テストngSwitchはジャスミン
- 5. ジャスミンは、CIが
- 6. ジャスミン
- 7. ジャスミン
- 8. ジャスミンは、オブジェクトが特定のメソッドまたは私はジャスミンを使用していない
- 9. ジャスミン-jqueryのtoBeDisabledは
- 10. 一息-ジャスミンはsystemjs
- 11. テスト新しいオブジェクトインスタンス(ジャスミン)
- 12. シンプル活字体ジャスミンのテストは、私は次のような単純なジャスミンのテストを持っているエラー
- 13. ジャスミンCLASSPATH
- 14. はなぜジャスミンの仕様は
- 15. PhantomJSは、以下のように、私はフィクスチャを追加していジャスミンはジャスミン器具
- 16. ジャスミンとカルマとジャスミンの結果が異なる
- 17. は、私はPHPに新たなんだ
- 18. 私的方法ジャスミンによるユニットテスト
- 19. Restangular extendModelジャスミン
- 20. ジャスミン:AngularJS約束
- 21. カルマ・ジャスミン・コルドバ・プラグイン
- 22. ユニットテストノックアウトバインディングハンドラー(ジャスミン付き)
- 23. ジャスミン工場
- 24. ジャスミン、約束
- 25. ジャスミンJavaScript例外
- 26. ジャスミン仕様
- 27. 角度-ジャスミン:タイムアウト
- 28. 角度テストサービス(ジャスミン)
- 29. ジャスミンのスパイが
- 30. ジャスミンのスパイが
このエラーは、定義されていない変数にアクセスしているので、本質的にスローするecmasceiptエンジンによって決まります。ジャスミンのせいではないので、これは完全に期待されています。それが言語の振る舞いです。 – Reece