为什么Scala无法从特征识别方法

| 首先我有特质:
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 ) }

}
然后我创建具有以下特征的scala类:
import _root_.com.thoughtworks.selenium._

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

  def selenium = sel

  override val name = nam
}
然后,当我尝试在代码中使用它时:
val rodzaj =  new WebAppField(selenium, \"RODZAJ\")
rodzaj text should equal  \"K\"
我有:
error: not found: value should
[INFO]    rodzaj text should equal  \"K\"
我做错了什么? Scala版本2.8     
已邀请:
当您从Scala中的方法调用中省略圆点和括号时,它们总是以相同的方式进行解析,并假定使用了前缀表示法和单个参数。
rodzaj text should equal \"K\"
是相同的
rodzaj.text(should).equal(\"K\")
尝试将其重写为:
rodzaj.text should equal(\"K\")
或者,您也可以将标点符号完全标记为:
rodzaj.text.should(equal(\"K\"))
    
字符串通常没有
should
方法。 ScalaTest通过隐式转换使其可用。 在编写测试的地方,需要进行以下导入:
import org.scalatest.matchers.ShouldMatchers._
将其隐含在范围内。导入还不足以显示在要测试的代码中。 实际上,在所测试的代码中完全引用了ScalaTest有点奇怪。通常,对测试框架的引用仅应出现在测试中。     

要回复问题请先登录注册