0

スペック機能をデバッグまたは探索するときは、スペックをファイルに入れて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
4

2 に答える 2

4

Scalaコンソールを起動して、scala -classpath仕様内から使用する仕様やその他のライブラリ(JUnit、Scalacheckなど)に必要なjarを提供できます。または、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

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

于 2010-01-17T11:11:41.650 に答える
0

仕様についてはわかりませんが、ScalaCheckを使用して確認しました。実際に必要なのは、クラスパスにJARを含めることだけです。

于 2010-01-17T02:19:20.120 に答える