問題タブ [stubbing]
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.
ruby-on-rails - Rspecでデータベースクエリを使うのは良いことですか?
非常に古いプロジェクトの Rspec を使用してテストを書き始めました。私がテストしているモデルはすべて ActiveRecords (バックエンドは Oracle) です。実際のSQLを起動するよりも、モックとスタブ/フィクスチャ/ファクトリーガールを使用する必要があると言うブログをいくつか読みました。私は混乱しています。多くのメソッドをスタブ化し、多くのオブジェクトを作成する必要があります。これは良い習慣ですか?
ruby-on-rails - Rspec を使用した File.open のスタブ化
CSV ファイルを読み取るメソッドをテストするために、File.open をスタブしようとしています。
モデルは次のとおりです。
仕様コードは次のとおりです。
ただし、これを実行しようとすると、次のようになります(スタックトレース):
私はこれに頭をぶつけてきましたが、何が間違っているのかわかりません。どんな助けでも大歓迎です!
ruby-on-rails - RSpec: SFTP のスタブ化
オブジェクトから Net::SFTP をスタブ化しようとしています。モデルは次のとおりです。
仕様は次のとおりです。
スタックトレースは次のとおりです。
まず、私のアプローチはここにありますか?SFTP は十分にテストされていると確信できるので、SFTP の機能を削除したいと考えています。代わりに、get_file_stream() 内の「ブラック ボックス」によってファイル ストリームが確実に返されるようにすることに焦点を当てたいと思います。
第二に、これを達成するために sftp.file.open() を適切にスタブするにはどうすればよいですか?
ここでアイデアをお寄せいただきありがとうございます!
java - テストのためにXMLBeansオブジェクトをスタブ/モックする方法は?
Apache XMLBeans(org.apache.xmlbeans.XmlObjectを拡張するXML構造要素のインターフェース、org.apache.xmlbeans.impl.values.XmlComplexContentImplを拡張するインターフェースの実装)を使用するアプリケーションを使用しています。
私は次のような機能を手に入れました:
- XMLオブジェクトは、いくつかのデータを含むメソッドに渡されます
- このデータに基づいて、このXMLオブジェクトのサブコンテンツが生成されます
- XMLオブジェクトのaddFoo()を使用して要素などを追加する
この機能をテストしたいのですが、このXMLオブジェクトをテストするための最良の方法がわかりません(スタブ/モックオブジェクトでサブツリーの状態を簡単にテストできるようにしたいと思います) 。いくつかのオプション:
- これらのFooImpl実装オブジェクトをインスタンス化しようとしましたが、org.apache.xmlbeans.SchemaTypesTypeへの参照が必要です。
- これらをインスタンス化する方法はありますか?
- null /モックされたSchemaTypeを指定すると、何かが追加されたときにNPEになります
- いくつかの必要なメソッドを使用してスタブクラスを生成することは機能しますが、生成するメソッドが多数(> 100)になることになります
- Mockitoを使用することは別の方法でも機能しますが、xmlツリー構造の状態を簡単にテストするには、doAnswer()などを使用する必要があります。
いくつかのアイデア?
br、トウコ
node.js - エクスポートされていないプロパティをスパイする方法
次のようなモジュール「sitescollection」があります。
したがって、sitescollection 内では、site はエクスポートされないモジュールです。しかし、コード内では、私はそれを使用しています。今、#findOrCreateById() のジャスミン仕様を書いています。
findOrCreateBy() 関数を指定したいと思います。しかし、仕様は実装から独立している必要があるため、site() 関数をスタブしたいと考えています。スパイされたメソッドをどこに作成する必要がありますか?
coffeescript - window.location.searchのSinon.JSスタブ
window.location.searchを呼び出す単純な関数をテストしようとしています。選択したURLを返すことができるように、この呼び出しをスタブする方法を理解しようとしています。
働き:
テストケース:
私の最初の試みは、次のように直接値を返すことでした。
もちろん、これは機能しません。スタブを正しく指定しているとは思いませんが、それは私の意図を示しています。
これを解決する方法についてのアイデアは大歓迎です。
visual-studio-2012 - Visual Studio 2012 Fakes が、Stream 戻り値の型を持つメソッドを持つインターフェイスのスタブを生成しない
Visual Studio 2012 を使用して "Add Fakes Assembly" でスタブを生成すると、このインターフェイスのスタブを生成できないことを除いて、すべてが期待どおりに機能します。
Stream を FileStream に変更すると (Stream は抽象クラスであり、これが抽象クラスでのみ発生しているかどうかを確認したかったため)、まだ生成できません。メソッド シグネチャを完全に削除すると (つまり、 が削除Stream OpenReadStream(string path);
されます)、スタブを生成できます。
これは私の .fake ファイルの内容です:
- なぜこれが起こっているのか、どうすれば回避できますか?
- Fake 生成の結果が表示される Visual Studio 出力パネルがあるはずです。何も表示されず、通常のビルド パネルに表示されません。私がそれを見つけることができるアイデアはありますか?すべての VS 2012 メニューを検索しました。
testing - Jasmine でタグをフィクスチャとして設定する方法
現在、Jasmine で JS 関数をテストしようとしています。関数はタグに設定された CSS クラスをチェックするため、タグをフィクスチャでbody
使用したいと考えています。<body>
このスタブ化された HTML への jQuery 参照$('body')
は、テスト中の JS 関数に渡されます。しかし、このbody
タグは明らかに Jasmine テスト内に実際に到着することはありません - Jasmine が body を含む独自のドキュメントを作成し、この内部にすべてのフィクスチャを配置しているように見えますdiv
- 少なくともスタブ化さouterHTML
れた body 要素の をエコーすると、これが内部に表示されますボディと Jasmine 関連のインライン JS の後:
body をスタブしようとすると空ですが、div
代わりに a を使用するといっぱいになります。
Jasmine テスト内で body タグをスタブする方法はありますか?
ruby - Webmockがリクエストスタブを正しく登録しない
次のようにリクエストスタブを登録しています。
何らかの理由で実行するbundle exec rspec spec
と、リクエストがまだ登録されていないとスペックが失敗します。登録されたスタブはこれです、
to_return
パーツが欠落していることに注意してください
ヘッダーを空の文字列に置き換えようとしましたがbody
、リクエストスタブは正しく登録されていますが、空の文字列以外の値を本体から期待しているため、仕様は失敗します。したがって、bodyに値を割り当てることが非常に重要です。
私の仕様では、このメソッドを呼び出しています。
なぜこれが起こっているのかについてのアイデアはありますか?
ありがとう。
ruby-on-rails - モデルで定義されていない Any_instance
私は rspec テストを書いています - そして何らかの理由で、メソッド any_instance が未定義であると言われました。コントローラの rspec ファイルの 1 つに非常によく似た期待があり、正常に動作するため、非常に驚いています。なぜこれが起こっているのでしょうか?
エラー
私のrspecバージョン(私のgemfileから取得)
gem "rspec-rails", ">= 2.11.0", :group => [:development, :test]
ありがとう!