如何使用ScalaMock代理模拟?

Mar*_*ark 5 scalatest

我有一个非常简单的测试,我试图模拟一个特征.测试甚至没有运行,并且它因初始化错误而失败:java.lang.IllegalArgumentException:要求失败:您是否记得使用withExpectations?

这是我非常简单的测试:

import org.scalatest._
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.matchers.ShouldMatchers
import org.scalamock.ProxyMockFactory
import org.scalamock.scalatest.MockFactory

@RunWith(classOf[JUnitRunner])
class TurtleSpec extends FunSpec with MockFactory with ProxyMockFactory {
  trait Turtle {
    def turn(angle: Double)
  }

  val m = mock[Turtle]
  m expects 'turn withArgs (10.0)

  describe("A turtle-tester") {
    it("should test the turtle") {
      m.turn(10.0)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

jde*_*lop 1

你需要在运行测试之前调用resetMocks/resetExpectations,最好的方法是(ScalaTest方法):

class TurtleSpec extends FunSpec with MockFactory with ProxyMockFactory with BeforeAndAfter {

  before {
    resetMocks()
    resetExpectations()
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)