2016-09-27 3 views
1

Я играю с sharing fixtures, особенно withFixture (NoArgTest). Однако мой код не компилируется, если ссылается на NoArgTest.ScalaTest: ссылка NoArgTest

Моя единственная зависимость:

<dependency> 
     <groupId>org.scalatest</groupId> 
     <artifactId>scalatest_2.11</artifactId> 
     <version>3.0.0</version> 
    </dependency> 

Мой код пытается ссылаться NoArgTest как тип:

1 class Example { 
2  def foo(test: org.scalatest.TestSuite) = "foo" 
3  def bar(test: org.scalatest.TestSuite.NoArgTest) = "bar" 
4 } 

МВН компиляции:

[WARNING] Expected all dependencies to require Scala version: 2.11.8 
[WARNING] org.scalatest:scalatest_2.11:3.0.0 requires scala version: 2.11.8 
[WARNING] org.scalactic:scalactic_2.11:3.0.0 requires scala version: 2.11.8 
[WARNING] org.scala-lang:scala-reflect:2.11.8 requires scala version: 2.11.8 
[WARNING] org.scala-lang.modules:scala-xml_2.11:1.0.5 requires scala version: 2.11.7 
[WARNING] Multiple versions of scala libraries detected! 

...

[ERROR] Example.scala:4: error: object TestSuite is not a member of package org.scalatest 
[ERROR] Note: trait TestSuite exists, but it has no companion object. 
[ERROR] def bar(test: org.scalatest.TestSuite.NoArgTest) = "bar" 

Почему?

ответ

0

Вы можете написать TestSuite#NoArgTest (это общий тип всех NoArgTest ов независимо от пакета), или suite.NoArgTest, если у вас уже есть экземпляр suite: TestSuite. Обратите внимание, что если suite является параметром члена, они должны быть в отдельных списках параметров:

def bar(suite: TestSuite)(test: suite.NoArgTest) = ... 

Смотрите ответы на What are the differences between Scala’s inner classes and Java’s Inner/nested classes? для более подробной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^