2016-04-28 11 views
0

ScalaTestを使用すると奇妙なエラーが発生します。 ;ScalaTestを使用してコンパイルエラーが発生しましたか?

「selftype ElementSuite org.scalatest.junit.JUnit3Suiteのselftype org.scalatest.junit.JUnit3Suiteに準拠していない違法継承が」

import org.scalatest.junit.JUnit3Suite; 
import Element.elem; 

class ElementSuite extends JUnit3Suite { 

    def testD() { 
    val ele = elem('x', 2, 3); 
    assert(ele.width === 2); 
    } 

} 

は、私が言ってコンパイルエラーを取得: は、私は、次のコードを持っています

任意のアイデア??それが正常に動作する必要がありますので、私はストレートマーティンOderskeyの本からこの例を取っ​​

注...問題はなど、Scalatestをスカラ座、 SBTのどのバージョンを知っていない、まさに言い難い

+0

わかりませんが、私はJUnit3Suiteが広く使われているとは思わないが、ScalatestはOderskyが彼の本を書いて以来、いくつかのバージョンを経ています。私はいつもFunsuiteを使用しました。代わりにそれを試してみてください。 –

答えて

1

あなたがしていますこれはより最近のリリースを使用して動作します。 古いバージョンの バージョンとの接続を正確に判断しようとするのではなく、現在のバージョンの方が楽になると思います。

build.sbt:

resolvers ++= Seq(
    "Sonatype releases" at "https://oss.sonatype.org/content/repositories/releases" 
) 
libraryDependencies += "org.scalactic" %% "scalactic" % "2.2.6" 
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test" 

Testクラス:

import org.scalatest.FunSuite 

// Random implementation because I'm not sure what Martin's elem class is. 
case class elem(someField: Char, width: Int, height: Int) 

class ElemSuite extends FunSuite { 
    test("D") { 
    val ele = elem('x', 2, 3) 
     assert(ele.width === 2) 
    } 
} 

私は、これはあなたが本の中でコードを取得します最も近いものだと思います。

import org.scalatest.{FlatSpec, Matchers} 

class ElemSpec extends FlatSpec with Matchers 
{ 
    it should "retrieve the correct width" in { 
    val ele = elem('x', 2, 3) 
    ele.width shouldBe 2 
    } 
} 

をあなたはスカラに新しいしている場合しかし、あなたは が本と一致していることを、スタイルにこだわるの方が良いかもしれません。しかし、私は私のテストを書くときにマッチャーとともにFlatSpecとFeatureSpecを使用して好きです。 ScalaTestスタイルの

さらに詳しい情報:http://www.scalatest.org/user_guide/selecting_a_style

免責事項:私は実際には、最新の3.0.0のリリース候補を使用していますが、私は これらの簡単なテストはまだあなたが2.2.6を使用してのために働くだろうと思います。

関連する問題