Play Framework 2 scala specs2 mockito, как написать имитирующий модульный тест

Таким образом, игровая среда говорит о том, что у спецификаций2 и спецификаций2 есть mockito.

Я хочу использовать mockito для написания теста, в котором шаблон, который вызывает контроллер, является макетом mockito.

Все документы, которые я нашел до сих пор, представляют собой реализации Java, в которых вы вызываете фиктивную статическую функцию и даете ей класс Mocked в качестве аргумента дженериков.

Из того, что я могу сказать, mock-функция по умолчанию не отображается в спецификации, так как мне создать mockito mock?

Пожалуйста, приведите пример, который включает как создание макета, так и утверждение, что макет вызывается с определенными аргументами.


person The Trav    schedule 10.07.2013    source источник


Ответы (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"))
      }
  }
}
person The Trav    schedule 11.07.2013
comment
Стоит отметить, что игра в настоящее время не включает зависимость mockito по умолчанию. Вам нужно добавить его в свой Build.scala - person The Trav; 11.07.2013
comment
как добавить его в Build.scala? - person Jaap; 06.09.2013
comment
Добавьте org.mockito % mockito-all % 1.9.5 % test (или любую версию, которую вы предпочитаете) в последовательность appDependencies. - person johanandren; 06.09.2013