Как создать макет объекта в Scala? - PullRequest
0 голосов
/ 19 июня 2019

Я пишу модульный тест для класса Scala, код приведен ниже.Здесь я пытаюсь смоделировать методы класса B, когда пишу тестовые методы для класса A. Вот что я попробовал:

Тестовый класс для класса A:

class ATest extends FunSuite with BeforeAndAfterAll {
    @InjectMocks
    val a: A = new A

    @Mock
    val b: B = new B

    override def beforeAll(): Unit = {
        super.beforeAll()
        MockitoAnnotations.initMocks(this)
    }

    test("testSum") {
        Mockito.doReturn(20).when(b).add(12)
        val actualValue = a.sum(12)
        assertResult(20)(actualValue)
    }
 }

Ниже приведены бизнес-классы:

class A{
    val b = new B

    def sum(a:Int):Int={
    val value = b.add(a)
    value
    }
}

class B{
    def add(a:Int):Int={
    a+1
}
}

Проблема в том, что тестовый метод проходит, только если я оставлю var b = new B вместо val b = новый B в бизнес-классе А.Я думаю, когда это val b = new B , насмешки не происходит.Пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...