如何使用ScalaMock代理模拟?

时间:2013-01-11 17:52:03

标签: 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)
    }
  }
}

1 个答案:

答案 0 :(得分:1)

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

class TurtleSpec extends FunSpec with MockFactory with ProxyMockFactory with BeforeAndAfter {

  before {
    resetMocks()
    resetExpectations()
  }

  ...
}