我有一個用@Component 注釋的簡單類,并注入了類似的存盤庫
@Component
class TestsDataPreparer(
private val carRepository: CarRepository
) {
fun withCar(builder: Car.() -> Unit = {}): Car {
return carRepository.save(
Car(
name = builder.name!!
)
)
}
}
這很清楚..
但我想知道做這樣的事情是否可以,或者它是否被認為是反模式。
@Component
class TestsDataPreparer(
val carRepository: CarRepository
) {
fun withCar(builder: Car.() -> Unit = {}): Car {
return carRepository.save(
Car(
name = builder.name!!
)
)
}
}
@Test
fun testCar() {
testsDataPreparer.withCar{this.name="Super-cool-car!"}
assertThat(testsDataPreparer.carRepository.findAll()).hasSize(1)
}
所以問題是是否可以不在測驗類本身中注入存盤庫,而是從 TestsDataPreparer 類中重用它
uj5u.com熱心網友回復:
是的,為了測驗而公開一個原本私有的欄位可以被認為是一種反模式。相反,您可以創建一個CarRepository實體,然后TestsDataPreparer在創建它時將其傳遞給它。但是對于單元測驗,您實際上并不需要它,您可以使用模擬并驗證是否呼叫了正確的方法(CarRepository.save)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/525488.html
標籤:春天科特林测试朱尼特
