#android-fragments #dependency-injection #mocking #android-espresso
Вопрос:
У меня есть Fragment
. Внутри этого Fragment
я открываю 3-ю партию Activity
registerForActivityResult(CropImageContract())
.
Теперь я хочу проверить Fragment
это . Особенно я хочу проверить, правильно ли обработан результат третьей стороны Activity
.
Поскольку у меня нет доступа к третьей стороне Activity
во время тестирования аппаратуры, я подумал о том, чтобы ввести и поиздеваться CropImageContract()
, но я не знаю, как это сделать. Есть ли какие-либо идеи или альтернативные решения?
Это Fragment
то, что я хочу проверить:
class ProductDetailsFragment : Fragment() { private var mBinding: FragmentProductDetailsBinding? = null private val cropImageLauncher = registerForActivityResult(FakeCropImageContract()) { result -gt; if (result.isSuccessful) { // use the returned uri val uriContent = result.uriContent } else { // an error occurred val exception = result.error } } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { mBinding = FragmentProductDetailsBinding.inflate( inflater, container, false ) return mBinding!!.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { mBinding!!.contentProduct.productProductImageView.setOnClickListener { takePicture() } } private fun takePicture() { cropImageLauncher.launch() } }