問題タブ [spek]
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.
java - Maven Java プロジェクトで Spek テストが実行されない
いくつかの Spec テストを導入したい既存の Java プロジェクトがあります (kotlin ofc で)
spekの依存関係を追加しました
ここで説明されているように、kotlin-maven-plugin と maven-compiler-plugin を構成しましたhttps://kotlinlang.org/docs/reference/using-maven.html#compiling-kotlin-and-java-sources
(maven-compiler を省略-質問からのプラグイン構成)
さまざまなバージョンの kotlin、spek、surefire プラグインを試しましたが、今のところうまくいきません。
テストを実行しようとするたびに、Spek テストが実行されていませんtarget/test-classes
。(CalcSpec の場合、5 つの .class ファイルが生成されます)
android - LiveData、RxJava/RxKotlin、Spek を使用した Android でのテストでのフレークネス
設定:
私たちのプロジェクト (作業中 - 実際のコードを投稿することはできません) では、クリーンな MVVM を実装しました。ビューは、LiveData を介して ViewModel と通信します。ViewModel は、何かを行うための「アクション ユース ケース」と「ステート アップデーター ユース ケース」の 2 種類のユース ケースをホストします。後方通信は非同期です (アクションの反応に関して)。呼び出しから結果を取得する API 呼び出しとは異なります。BLE ですので、特性を書き込んだ後、通知特性を聞きます。そのため、状態を更新するために多くの Rx を使用します。コトリンにあります。
ビューモデル:
状態のユース ケースを更新します。
単体テストにはSpekを使用しています。
最初は、BehaviorSubject の代わりに Observable を使用していました。
代わりに:
しかし、単体テストは不安定でした。ほとんどの場合 (常に単独で実行された場合)、スーツ全体を実行すると失敗することがあります。Rx の非同期性に関係していると考えて、onNext() がいつ発生するかを制御できるように BehaviourSubject に移動しました。ローカル マシンで AndroidStudio からテストを実行するとテストに合格するようになりましたが、ビルド マシンではまだ不安定です。ビルドを再起動すると、多くの場合、パスします。
失敗するテストは、常に LiveData の値をアサートするテストです。したがって、容疑者は LiveData、Rx、Spek、またはそれらの組み合わせです。
質問: SPEK または Rx を使用して、LiveData で単体テストを書いた同様の経験をした人はいますか? また、これらの脆弱性の問題を解決する方法を見つけましたか?
...................................
使用されるヘルパー関数と拡張関数:
kotlin - spek テストでメモ化すると、「このコンテキストではアクセスできません」というエラーが表示されます
spek テスト (私たちにとって新しいこと) を作成しようとすると、モックの呼び出しを検証しようとしているときにエラーが発生します。エラーは次のとおりです。
このコンテキストでは「m3CustomerService」にアクセスできません。java.lang.AssertionError: 'm3CustomerService' はこのコンテキストではアクセスできません。
このエラーが発生し続ける理由を理解できませんでした。誰にもアイデアはありますか。
更新: memoized を使用してリストを取得すると、m3CustomerService への呼び出しが行われないため、テストは失敗します。