問題タブ [meteor-jasmine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
224 参照

meteor - sanjo:jasmine および Blaze.render との統合テストの適切な方法

sanjo:jasmineアプリのテストに使用しています。クライアント側の統合テストとBlaze.render. alanning:roles役割の管理に使用しています。

私のテンプレートでは、次のようなものです(簡単にするために最小化しています):

私のテストでは、次のようにします。

匿名ユーザーの最初の一連のテストは問題なくパスし、管理者のログインとログアウトも同様です。ただし、#adminlinkが存在するかどうかを確認するテストは失敗します。これは、要素がテスト内に存在するかどうかをテストする正しい方法のようですが、テンプレートがまだ完全にレンダリングされていないようです。

0 投票する
1 に答える
316 参照

meteor - ジャスミンはオブジェクトがオブジェクトと等しくないと不平を言っています

ジャスミンを使用していくつかの統合テストを行おうとしています。私は次のことをしています:

しかし、これが実行されると、ジャスミンは次のように文句を言います。

したがって、エラー メッセージから、A は A と等しくないと言っています。これを機能させるにはどうすればテストを変更できますか?

0 投票する
4 に答える
2254 参照

meteor - Meteor / Jasmine / Velocity : ログインユーザーを必要とするサーバーメソッドをテストするには?

速度/ジャスミンを使用して、現在ログインしているユーザーが必要なサーバー側の方法をテストする方法に少し固執しています。ユーザーが stub/fake 経由でログインしていると Meteor に思わせる方法はありますか?

0 投票する
0 に答える
192 参照

javascript - Meteor Jasmine テストで部分的なユーザー公開のみを取得

管理者ユーザーがアプリのユーザー管理インターフェイスを介してユーザー ロールを変更できることを確認するためのクライアント統合テストがあります。ただし、変更したいユーザーを照会すると、フィクスチャで作成されているにもかかわらず、クエリが空に戻ります。

このテストは次のエラーで失敗します。

TypeError: 未定義のプロパティ '_id' を読み取れません

2 人のユーザーを作成するフィクスチャ ファイルは次のとおりです。

console.logJasmine ログでフィクスチャの出力を確認でき、両方のユーザーが表示されます。undefinedchangeUserのテスト ログからのログと、完全なコレクション フェッチの現在のユーザーのみの配列。

私が想像できる他の唯一の問題は、出版と購読です。それらに問題はありませんが、見逃している可能性があります。ここに出版物があります:

およびサブスクリプション:

現在のユーザーのみを含むデフォルトの Meteor ユーザー パブリケーションがテスト用に配信されているようですが、ルートを待機するべきではなく、そのルートのユーザー サブスクリプションは、ユーザー リスト全体がパブリッシュ/サブスクライブされていることを意味しますか?

0 投票する
3 に答える
330 参照

meteor - キュウリとジャスミンの流星速度の共有テスト フィクスチャ

キュウリとジャスミンのテストでフィクスチャを共有するにはどうすればよいですか?

他の jasmine サーバー統合テストで使用できる 1 つの jasmine サーバー統合テストでフィクスチャーを作成できます。しかし、(「ミラー」が異なるためだと思いますか?)キュウリのテストで同じフィクスチャを使用することはできません。Mongo コレクションには、jasmine サーバー統合テストによって作成されたデータがありません。

1 つのオプションは、状態をフラット ファイル (nock) に保存することです。しかし、テスト フィクスチャの共通コレクション (同じミラー上?) を参照する方がはるかに簡単です。これは可能ですか?

0 投票する
0 に答える
34 参照

javascript - 1 つの Jasmine 記述ブロックで複数の計算を使用すると、トラッカーの反応性がちょうど半分の時間で開始されないのはなぜですか?

Jasmine で反応性をテストすると、いくつかの Tracker 計算が非常に興味深い方法で動作し始めました。ちょうど半分の計算が反応し、残りの半分はそうではありません。

この動作をテストするために私が行ったことは次のとおりです。

だから基本的に:

  1. fooリアクティブを に初期化しfalseます。
  2. 追跡を開始し、到達するのを待っtrueて、テストがdone().
  3. タイムアウトを使用しfoo.set(true)てテストを解決します。
  4. もう必要ないので、この計算を停止します。

では、別の変数を使用してまったく同じことを行いましょう。

そこから楽しみが始まります。このテストはまったく同じコードですが、名前が異なり、まったく同じロジックが記述されていますが、計算追跡バーが再実行されないため失敗します

console.logそれを非常によく示しています:

その計算における fooは: その計算false
における foo は: true - 反応性が開始されました!
その計算の棒は: false
[Nothing]

fooの計算が再実行され、テストが完了したことは明らかですが、 の計算barは決して無効にされないため、テストは失敗します。

ただし、これで終わりではありません。新しいリアクティブ変数 (たとえばbaz) に 3 番目のテスト ケースを追加し、前と同じ手順に従うと (他の変数で初期化し、同じdescribe関数の最後にテストを追加する)、完全に機能します。

ここで、テストは(1)成功し、テスト(2)は失敗し、テストは(3)成功します。

catここで、同じ手順に従って、たとえば新しいものを使用して 4 番目のテストを追加すると、テスト(4)は次のログで失敗します。

foo の計算はfalse
foo の計算はtrue
bar の計算はfalse bar は再実行されず失敗
する baz の計算はfalse
baz の計算はtrue
cat の計算はfalse cat は再実行されず失敗
する

fooとではなくにbaz反応しました。barcat

私は他の 2 つ (5 番目と 6 番目) でそれを実行しましたが、同じ結果:(5)成功し、(6)失敗しました。
「奇数」のテストは成功し、「偶数」のテストは失敗します。

完全再現コード:

なぜこうなった?これらすべてのリアクティブ変数を同じ関数
に保持しながら、この問題を解決するにはどうすればよいですか?describe


ネストされたdescribe関数を追加しようとしましたが、成功しませんでした。
この問題は、関連のない関数でテストを分離すると魔法のように消えdescribeます。そのような方法で回答しないでください。

0 投票する
1 に答える
132 参照

javascript - meteor-jasmine クライアント側単体テストをデバッグする方法はありますか?

私は小さな流星アプリを書いていますが、同時にTDDを練習しようとしています。デバッガーを使用して Jasmine 単体テストを実行する方法がわからないという小さなハードルに遭遇しました。

テストは[project root]/tests/jasmine/client/unit、例のように格納されます。

速度に関するドキュメントでは、サーバー側のテストをデバッグする方法について詳しく説明しています、クライアント側のテストについては言及されていません。

クライアント統合テストをデバッグできます。meteor を開始するとログが記録[velocity] jasmine-client-integration is starting a mirror at http://localhost:51259/.され、そこに移動することでテストをデバッグできます。しかし、クライアントの単体テスト用にミラーが作成されていないようです。

編集:実際には、クライアント統合テストもデバッグできるようですlocalhost:3000。開発者コンソールは次のようになります。

Chrome デベロッパー コンソール

また、miscSpec.js にブレークポイントを追加することで、統合テストをデバッグできます。

最後に、Meteor-Jasmine が単体テストの console.log からの出力を に書き込むことを知っています[project root]/.meteor/local/log/jasmine-client-unit.log。それは役に立ちますが、デバッガーを介してテストを実行できるようにしたいと考えています。

私は使用しています

  • 流星 1.2.0.2
  • 三条:ジャスミン 0.20.2