为什么scala无法从特征中识别方法

Koz*_*łek 2 scala scala-2.8

首先,我有特点:

import _root_.com.thoughtworks.selenium._
import org.scalatest.matchers.ShouldMatchers
import org.scalatest.matchers.ShouldMatchers._

trait SeleniumField extends ShouldMatchers {

  val name : String

  def selenium : Selenium

  def text : String = { return selenium.getValue(name) }

  def is(v:String) : Boolean  = { this.value equals v }

  def set(v:String) =  { selenium.`type`( name , v ) }

}
Run Code Online (Sandbox Code Playgroud)

然后我用这个特性创建scala类:

import _root_.com.thoughtworks.selenium._

class WebAppField(sel:Selenium, nam: String) extends SeleniumField {

  def selenium = sel

  override val name = nam
}
Run Code Online (Sandbox Code Playgroud)

然后当我尝试在代码中使用它时:

val rodzaj =  new WebAppField(selenium, "RODZAJ")
rodzaj text should equal  "K"
Run Code Online (Sandbox Code Playgroud)

我有:

error: not found: value should
[INFO]    rodzaj text should equal  "K"
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Scala ver 2.8

Dav*_*low 7

当您在Scala中省略方法调用中的点和圆括号时,它们总是以相同的方式进行解析,假设使用中缀表示法和单个参数.

rodzaj text should equal "K"
Run Code Online (Sandbox Code Playgroud)

是相同的

rodzaj.text(should).equal("K")
Run Code Online (Sandbox Code Playgroud)

尝试将其重写为:

rodzaj.text should equal("K")
Run Code Online (Sandbox Code Playgroud)

或者你可以完全标点为:

rodzaj.text.should(equal("K"))
Run Code Online (Sandbox Code Playgroud)