【问题标题】:Why it has the type Nothing?为什么它的类型是 Nothing?
【发布时间】:2019-10-24 08:56:31
【问题描述】:

我正在尝试在我的 bdd 测试中使用https://www.testcontainers.org/,如下所示:

final class DetectorSpec extends BddSpec {

  private val listener1 = TestProbe()
  private val listener2 = TestProbe()

  private val detector = system.actorOf(DetectorSupervisor.props)

  var sapMock = new FixedHostPortGenericContainer("zerocoder/sapmock:2.1.1")
    .withFixedExposedPort(8080, 9090)


  override def afterAll(): Unit = {
    TestKit.shutdownActorSystem(system)
  }
  ......

上面代码的问题是,变量sapMock 的类型为Nothing。看来,方法链接不起作用。

为什么变量sapMock 的类型为Nothing

【问题讨论】:

  • listenerNdetectorafterAllDetectorSpec 本身有什么用?它们似乎没有以任何方式用于sapMock 的定义中。这不是最小的。
  • 我正在尝试测试我的演员,因为我需要他们。
  • 我没有粘贴所有代码。

标签: java scala testcontainers


【解决方案1】:

FixedHostPortGenericContainer 需要容器本身的 F 有界参数类型。您根本没有指定任何类型参数,所以看起来您最终得到了类似原始类型的东西。

试试

class SapMock extends 
FixedHostPortGenericContainer[SapMock]("zerocoder/sapmock:2.1.1")


val sapMock = new SapMock.withFixedExposedPort(8080, 9090)

【讨论】:

  • F-bounded parameter type 是什么?
  • @zero_coding <SELF extends FixedHostPortGenericContainer<SELF>>。通常,任何带有约束的类型参数都类似于X <: F[X]
  • F-bounded 让我很困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多