Метод newInstance()
кажется совершенно бессмысленным, потому что Intent
передается Activity
; вам следует пересмотреть, как создается ProfileActivity
, потому что это не так. getIntent()
- это все, что вам нужно, чтобы получить Intent
(как подсказывает название метода). Также следует принять во внимание предложение @ EpicPandaForce, чтобы избежать беспорядка. Однако это не был настоящий вопрос (просто сказать, потому что вы могли бы утверждать, что «это не работает»).
Тестирование Activity
с глубокой связью Intent
работает аналогично это:
import android.content.Intent
import android.net.Uri
import androidx.test.ext.junit.rules.activityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Rule
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class ProfileActivityTest {
@get:Rule
var testRule = activityScenarioRule<ProfileActivity>(
Intent(Intent.ACTION_VIEW, Uri.parse(DEEP_LINK))
)
@Test
...
companion object {
val DEEP_LINK = "tigranes://home/profile?profileId=3545664"
}
}
activityScenarioRule
зависит от:
androidTestImplementation "androidx.test.ext:junit-ktx:1.1.1"
Пожалуйста, дайте мне знать, если это работает (это потребует исправления ProfileActivity
в первую очередь).
Также убедитесь, что intent-filter
в AndroidManifest.xml
настроен правильно.