2016-05-10 7 views
0

a library私はa very useful classを作成しました。テスト/scalaです。このクラスをテストで使用できるように、このクラスをユーザーが利用できるようにするにはどうすればよいですか?テストでコードをデプロイする

このテストクラスをsrc/main/scalaに移行して展開すると、私のライブラリはテストフレームワークを依存関係として持つ必要があります。

テストでアーティファクトを展開すると、私のライブラリのテストもパッケージ化されます。これは私のライブラリを使用している人がライブラリテストにアクセスする必要がないので愚かです。

+0

私は、私はそれはあなたが、特に、そのクラスについて、特に「便利」を見つけ、そして何であるか理解していないです、それが使えるスケート 'Futures'について' Await.result(f) 'ではなく' f.futureValue'を呼び出すことはできません。 – Dima

+0

'Await.result'はScalaTestの' futureValue'が非同期の場合は同期です。有用性は、私が 'PatienceConfig'を再定義する必要がないという事実にあります。 –

+0

非同期ですか?それはどういう意味ですか?私の本では、 "非同期"にするには、 "未来"を返す必要がありますが、あなたはすでに "未来"を持っています。明らかに、あなたはその言葉のために何らかの種類の異なる意味を念頭に置く必要がありますか? – Dima

答えて

2

だけscalatestへの依存を取り除く、あなたはその原料を必要としない:

trait VeryUsefulTrait { 

    implicit class RichExpect[T](expect: Expect[T]) { 
     val timeout = expect.settings.timeout + 1.second 
     def failedFutureValue: Throwable = Await.result(expect.run().failed, timeout) 
     def futureValue: T = Await.result(expect.run(), timeout) 
     def whenReady[U](f: T => U): U = f(Await.result(expect.run(), timeout)) 
    } 
関連する問題