我有一个用@Component标注的简单类和注入的存储库,如
@Component
class TestsDataPreparer(
private val carRepository: CarRepository
) {
fun withCar(builder: Car.() -> Unit = {}): Car {
return carRepository.save(
Car(
name = builder.name!!
)
)
}
}
这是清楚的。
但是我想知道这样做是否可以,或者它是否被认为是反模式的。
第一个
因此,问题是,不将存储库注入到测试类本身中,而是从TestsDataPreparer类重用它是否合适
1条答案
按热度按时间bejyjqdl1#
是的,仅仅为了测试can be considered an antipattern而将一个原本私有的字段变成公共的。相反,你可以创建一个
CarRepository
示例,然后在创建它的时候将它传递给TestsDataPreparer
。但是对于单元测试,你实际上并不需要这样做,你可以使用一个mock并验证调用了正确的方法(CarRepository.save
)。