問題タブ [scalamock]
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.
scala - Scalamock でモックする場合はマッチャーを使用できません
matcher を使用して ScalaMock と ScalaTest でテストを実行しようとしていますshould be
。コードは次のとおりです。
これは gradle でのインポートです (混合プロジェクト java+scala です):
発生しているエラーは次のとおりです。
助けてくれてありがとう。
scala - Scala テスト: 関数の実装を置き換える
ScalaTest を使用して、テスト ケース内の関数の実装を置き換えたいと考えています。私のユースケース:
単体テスト testing を書きたいのですがModule.doSomething
、このテスト ケースがテストが実行された実際の年に依存することは望ましくありません。
動的言語では、関数の実装を置き換えて固定値を返す構造体をよく使用しました。
Module.currentYear
実際の年に関係なく、常に 2014 を返すようにテスト ケースの実装を変更したいと思います。
いくつかのモック ライブラリ (Mockito、ScalaMock など) を見つけましたが、それらはすべて新しいモック オブジェクトしか作成できませんでした。それらのどれもメソッドの実装を置き換えることができなかったようです.
それを行う方法はありますか?そうでない場合、テストが実行された年に依存せずに、どうすればそのようなコードをテストできますか?
scala - 別の関数内で定義されている関数をモックすることは可能ですか?
テスト目的でモックする必要があるデータベースにアクセスする関数がいくつかあります。
使いやすくするために、これらの関数を別の関数内で定義したいと思います。この関数では、スコープを利用して、渡す必要がある引数の数を減らすことができます。
ネストされた関数をモックしながら、親関数をテストする必要があります。
ネストされた関数をモックするトリックはありますか?
二次的な質問として、任意の深さでネストされたときに関数をモックする方法はありますか?
補足: 私のプロジェクトは十分に軽いので、古典的なモッキングを使用することさえありません。しかし、この質問については、どんな種類のあざけりでもかまいません。
非常に単純なコード例を次に示します。
scala - ScalaMock が特性をモックすると、「MockFunction1 は StubFunction1 にキャストできません」
次のコード:
実行時エラーが発生しますorg.scalamock.MockFunction1 cannot be cast to org.scalamock.StubFunction1
。私のプロジェクトの依存関係は次のとおりです。
何か案は?ありがとう!
scala - Unit を返す汎用メソッドを ScalaMock で検証すると、メソッドのオーバーロード コンパイル エラーが発生する
この次のコード:
コンパイル エラー "overloaded method value verify with alternatives: (matcher: org.scalamock.FunctionAdapter1[Int,Booleam]) org.scalamock.CallHandler1[Int,Unit] with org.scalamock.Verify (v1: org.scalamock.MockParameter) を返します。 [Int]") org.scalamock.CallHandler1[Int,Unit] with org.scalamock.Verify は (xyContainer[Int])" には適用できません
ジェネリックを削除しても役に立ちません。スタブ/検証からモック/期待に交換すると、同じスタイルのコンパイル エラーが発生します。
私はscala 2.11.0を使用しています
どんな助けでも大歓迎です。
scala - scalamock を使用して scala で ClassTag を使用するメソッドをモックする
私の最初の質問である質問には回答がありましたが、私が抱えている別の問題が明らかになりました。これがシナリオです。
サンプルコード (前の質問から拡張)
モデル:
コンポーネント定義:
具体的なコンポーネントの実装の 1 つ (更新された実装):
システム内のどこかでコンポーネント impl が暗黙的に使用されています:
単体テスト 1、リポジトリ テストを分離するためにプロバイダーをモックアウトしようとしています。これは機能しません。テストの実行時に次の execption がスローされます。ClassTag を使用しない別のサンプルを作成すると、正常に動作するため、ClassTag の使用が原因であると思われます。
org.scalamock.MockFunction2 は org.scalamock.MockFunction1 にキャストできません java.lang.ClassCastException: org.scalamock.MockFunction2 は org.scalamock.MockFunction1 にキャストできません
Unit Test2 は機能しますが、保守が難しく、より多くのコードが必要です。
Unit Test3 は機能しますが、ClassTag の実装をテストするためだけに使用されます。
ClassTag を間違って使用していますか、それともモックが適切にモックできませんか?
scala - scala-mock を使用してトレイトの val をモックする
特性の val をモックしたいと思います。たとえば、このコードでは、 val をモックしますbaz
。
テストでこれを解決するために、Foo を拡張baz
し、次の方法で実装しました。
しかし、これは醜いので、scala モックを使用してこれを行うより標準的な方法があることを望んでいました。
この質問への回答を見てきましたが、特性のval
toを変更する必要があり、valdef
を保持したいbaz
scala - MailerAPI.send の ScalaMocks スタブが呼び出されたことを確認する方法は?
ScalaMockスタブのsend(Email)
メソッドが呼び出されたことを確認するにはどうすればよいですか?play.api.libs.mailer.MailerAPI
上記のコードをコンパイルすると、次のエラーが発生します。