【发布时间】:2022-01-13 02:56:46
【问题描述】:
我正在尝试测试类似的课程
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest(classes = [TestConfig::class])
@ExtendWith(MockitoExtension::class)
class TotalCalculatorTests {
@Mock
lateinit var jdbcRepo: JDBCRepo
@Mock
lateinit var userCache : LoadingCache<ApproverLevel, List<Approver>>
@InjectMocks
lateinit var calculator: TotalCalculator
@Test
fun totalOrder() {
// val calculator = TotalCalculator(userCache,jdbcRepo)
calculator.total(ItemA(),ItemB())
verify(jdbcRepo).getTotal()
}
}
我收到一个错误 Actually, there were zero interactions with this mock. 但如果我取消注释 // val calculator = TotalCalculator(userCache,jdbcRepo) 它可以工作。我假设 mockito 将使用来自测试类的模拟,但这似乎不是真的。如何获取 @InjectMocks 正在使用的 JDBCRepo 实例?
【问题讨论】:
标签: spring-boot kotlin mockito