Я пишу модульный тест для класса 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 , насмешки не происходит.Пожалуйста, помогите!