Scala REPL でスペックマッチャーを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2079091

質問

仕様の機能をデバッグまたは調査するときは、仕様を含むファイルに入力して Maven などで実行するよりも、REPL (Scala インタープリター) に入力する方が有利です。REPL で仕様オブジェクトと同じ「環境」を作成する最適な方法は何ですか?

アップデート:REPL でスペックのマッチャーを試す最も簡単な方法は、ヘルパー サブクラスを定義し、その本体内で式を使用することのようです。

scala> class S extends Specification { override def toString = { reportSpecs; "" } }
defined class S

scala> new S { 1 mustEqual 2 }
Specification "anon"

  x example 1
    '1' is not equal to '2' (<console>:10)

Total for specification "anon":
Finished in 0 second, 4 ms
1 example, 1 expectation, 1 failure, 0 error
役に立ちましたか?

解決

あなたはscala -classpathとScalaのコンソールを起動し、スペック(例えばJUnitの、Scalacheck)の中から、使用スペックや他のライブラリのためのneccesary瓶を提供することができます。また、あなたは正しいクラスパスでコンソールを起動するためにSBTからコンソール機能を使用することができます。

一度コンソールで、あなたは以下のように、仕様を定義し、それを実行することができます。

Welcome to Scala version 2.8.0.Beta1-RC5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_15).
Type in expressions to have them evaluated.
Type :help for more information.

scala> object Foo extends org.specs.Specification {
     |    "1 + 1" in { (1 + 1) must_== 2 }         
     | }                                           
defined module Foo

scala> Foo.reportSpecs
Specification "Foo"

  + 1 + 1

Total for specification "Foo":
Finished in 0 second, 184 ms
1 example, 1 expectation, 0 failure, 0 error

res0: Foo.type = Foo

また、自動的に再コンパイルし、.scalaファイルを保存するたびに後にテストを実行しますSBTでの連続テストランナーを、試してみたいことがあります。 SBTコンソールから、実行> ~test

他のヒント

私は、仕様については知らないが、私はScalaCheckとして行っている、それが本当に必要とするすべてのクラスパスにそのJARを持っている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top