【问题标题】:Play Framework 2 scala specs2 mockito, how do I write a mocking unit testPlay Framework 2 scala specs2 mockito,如何编写模拟单元测试
【发布时间】:2023-03-03 07:14:24
【问题描述】:

所以游戏框架谈到了有 specs2 和 specs2 有 mockito

我想使用 mockito 编写一个测试,其中控制器调用的模板是 mockito 模拟。

到目前为止,我发现的所有文档都是 java 实现,您可以在其中调用模拟静态函数并将 Mocked 类作为泛型参数提供给它。

据我所知,默认情况下,mock 函数不会在规范中公开,那么如何创建 mockito 模拟?

请举一个例子,包括创建模拟和断言模拟是用某些参数调用的

【问题讨论】:

    标签: unit-testing scala playframework-2.0 mockito specs2


    【解决方案1】:

    经过大量的谷歌搜索和拉头发后,我想出了以下内容

    package test
    
    import org.specs2.mutable._
    
    import play.api.test._
    import play.api.test.Helpers._
    
    import org.specs2.mock._
    import org.mockito.Matchers
    
    class ToTest {
      def go(a:String) = {
        "other"
      }
    }
    
    class MockSpec extends Specification with Mockito {
      "Mock" should {
          "work" in {
            //assemble
            val m = mock[ToTest]
            m.go(anyString) returns "tested"
    
            //act
            val result = m.go("test")
    
    
            //assert
            result must equalTo("tested")
            there was one(m).go(Matchers.eq("test"))
          }
      }
    }
    

    【讨论】:

    • 值得注意的是,play 默认不包含 mockito 依赖。您需要将其添加到您的 Build.scala
    • 如何将它添加到 Build.scala 中?
    • 将 "org.mockito" % "mockito-all" % "1.9.5" % "test"(或任何你喜欢的版本)添加到 appDependencies 序列中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2020-10-13
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多