問題タブ [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.

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

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 ファイルが生成されます)

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

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 で単体テストを書いた同様の経験をした人はいますか? また、これらの脆弱性の問題を解決する方法を見つけましたか?

...................................

使用されるヘルパー関数と拡張関数:

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

kotlin - spek テストでメモ化すると、「このコンテキストではアクセスできません」というエラーが表示されます

spek テスト (私たちにとって新しいこと) を作成しようとすると、モックの呼び出しを検証しようとしているときにエラーが発生します。エラーは次のとおりです。

このコンテキストでは「m3CustomerService」にアクセスできません。java.lang.AssertionError: 'm3CustomerService' はこのコンテキストではアクセスできません。

このエラーが発生し続ける理由を理解できませんでした。誰にもアイデアはありますか。

更新: memoized を使用してリストを取得すると、m3CustomerService への呼び出しが行われないため、テストは失敗します。