問題タブ [stubs]

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 投票する
2 に答える
779 参照

unit-testing - 必要な契約テストはスタブを意味しますか?

最近、私は契約テストと共同テストに関する多くの記事(主にJB Rainsbergerから)を読んでいます。それを取り入れるために、私は小さなプロジェクトを始めました。

私の理解では、コントラクトテストの責任は、実装がそのインターフェイス固有のコントラクトを尊重していることを確認することです。言い換えれば、それはリスコフの置換原則を奨励します。

オブジェクトの共同作業者を嘲笑することは、基本的に、それについての仮定を立てることです。さて、これらの仮定が変わるとどうなりますか?このようにMockitoを使用してコラボレーターをモックすると(スタブと同じことになります):

コラボレーターのインターフェース(つまり、そのコントラクト)を変更すると、変更に気付くことができなくなります。

だからここに私の質問があります:テスト対象のシステムに間接的な入力を提供する共同作業者を偽造するとき、見過ごされているインターフェース/契約の変更を防ぐためにスタブを使用する必要があるのは正しいですか?

これが私がすでにチェックしたいくつかのリンクです:

統合テスト詐欺の理解、コラボレーションと契約の削除

Javaでのコントラクトテストの記述方法

私は十分に明確であることを願っていますが、そうでない場合は、これをより透明にするために最善を尽くします。よろしくお願いします。

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

rspec - rspec ビューのスタブとパーシャル

RSpec (Rails 3.2.8 の 2.12) でビューをテストしています。CanCan を使用して、ページ上の特定の要素を条件付きで表示しています。これには、コントローラー メソッド「current_user」が必要です。私の仕様の一部では、 current_user をスタブ化できました。controller.stub(:current_user).and_return(etc) または view.stub.etc 。

これは私の仕様の一部で機能します。しかし、機能していない場所がいくつかあり、その理由がわかりません。

動作していない 2 つの仕様では、パーシャルを呼び出すビューをテストし、パーシャル内でメソッドとして「current_user」にアクセスします。エラーは

したがって、私の質問は、メソッドを正しくスタブして、パーシャル内でアクセスできるようにする方法だと思います。

それはどのように行われるべきですか?

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

unit-testing - スタブ、フェイク、モックを理解する。

C# を使用した Professional Test Driven Development: Developing Real World Applications with TDDを読み始めたところです。

スタブ、フェイク、モックを理解するのに苦労しています。私がこれまでに理解していることから、それらはプロジェクトの単体テストの目的で使用される偽のオブジェクトであり、モックは条件付きロジックを含むスタブです。

私が拾ったと思うもう1つのことは、モックが何らかの形で依存性注入に関連しているということです。これは、昨日やっと理解できた概念です。

私が得られないのは、実際にそれらを使用する理由です。それらを適切に説明する具体的な例をオンラインで見つけることができないようです。

誰かが私にこの概念を説明してもらえますか?

0 投票する
2 に答える
353 参照

java - Axis2スタブ生成の問題

SOAPWebサービス用のapacheaxis2、Apache tomcat 6サーバーインスタンスを使用して、WSDLからJavaスタブを生成しました。生成されたスタブには多くのエラーが含まれています(100)。そのうちのいくつかは重複したメソッドであり、ARRAY.lengthがタイプなどを解決できないという異常なエラーがありました。このエラーのためにスタブをコンパイルできません。これはaxis2のバグですか、それともなぜこれが発生するのですか?

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

.net - 保護された変数へのスタブ アクセス

このクラスをテストする必要があります:

メソッドを単体テストする必要がありますが、適切にテストするにGetGoogleAnalyticsTagはプロパティを設定する必要があります。GAInfo本番コードではPopulateGaInfo、このクラスから派生するときに my メソッドを使用してそれを行います。

GAInfoスタブを使用して設定するにはどうすればよいですか?

これが私のテスト方法です:

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

android - WSDL が Android 用のスタブ コードを生成しない (devicemgmt.wsdl)

問題を再現する手順は何ですか?

Eclipse adt、Java jdk、maven がインストールされている

1. pom.xml を用意する

2.onvif.xsd を用意する

3.devicemgmt.wsdl を用意します。

4.Java JDK (JAVA_HOME)、Maven (M2_HOME)、および For sdk (ANDROID_HOME) の環境変数を宣言します。

5.eclipse(Androidアプリケーションプロジェクト)でフォルダWSDLを作成し、ファイルonvif.xsdとdevicemgmt.wsdlを入れます。Dwvicemgmt.wsdl では、ファイルの最後に IP が宣言されています。 soap:address location="http://59.124.49.22:8083/onvif/device_service"

6. CMD で、プロジェクトのフォルダーに移動し、コマンド mvn generate-sources eclipse:eclipse を実行します。

プロジェクトと pom.xml、devicemgmt.wsdl、および onvif.xsd は次のリンクにあります: https://www.dropbox.com/s/xd8byoh9ebqoiuv/devicemgmt.rar ?

期待される出力は何ですか?代わりに何が見えますか?コマンド mvn generate-sources eclipse:eclipse は、pom.xml に記述されているフォルダー (TARGET フォルダー) にコードを生成することが予想されます。

使用している製品のバージョンは何ですか? どのオペレーティングシステムで?Windows 7 32 ビット jdk 1.6.0.45 Maven 3.0.5-bin

以下の追加情報を提供してください。

私はこのチュートリアル(https://code.google.com/p/android-soap-enabler/wiki/FiveMinutesTutorial)に従いましたが、異なる.wsdlを使用して、日食に必要なすべてのjarを入れました。また、mvn generate-sources eclipse:eclipse を実行した後にプロジェクトを更新すると、/gen は既に存在しますが、ソース フォルダーではないという問題もあります。ソース フォルダーに変換するか、名前を変更します。

tempconvert.wsdl で実行しようとしましたが、すべて問題なく動作しますが、devicemgmt.wsdl では何も生成されません。

0 投票する
2 に答える
4501 参照

c# - テストメソッド内でメソッドをスタブまたはシムしますか?

テストメソッドbase.ResolveDate()内に、基本クラスとそのパブリックおよび仮想からのメソッドがあります。このメソッドを自分のメソッドでスタブ/シムしたいのですが、スタブまたはシムしますか? スタブまたはシム、どうすればそれを行うことができますか? MS Fakes での私の経験から、スタブはオーバーライド可能なメソッドにのみ影響を与えることができるため、スタブになるようです。- ALM 2012

テスト方法は次のとおりです。

スタブ/シムしたい基本クラスのメソッドは次のとおりです。

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

java - JAX-WS - 異なる WSDL URL を持つポート タイプ オブジェクト

私は .Net Webservice を持っており、JAX-WS を使用してそのスタブを生成しました (WSDL と XSD をローカルにダウンロードしました)。ここで、スタブを 1 つの jar (stubs.jar) にパッケージ化し、WSDL と XSD を別の jar (wsdl.jar) にパッケージ化しました。

次のようなスタブを使用します。

すべて正常に動作しますが、デバッグ中にポート タイプ オブジェクトの作成に時間がかかることに気付きました。

また、デバッグ時のポート タイプ オブジェクトは、WSDL URL をリモート URL として表示します (Binding Provider オブジェクトにタイプ キャストされる前であっても)。

ポート型オブジェクトの WSDL の URL が変更された理由を特定できません。誰でも、私が理解するのを手伝ってください。

また、ポート タイプ オブジェクトの作成にかかる時間を短縮するためにできることはありますか。

前もって感謝します!