我有这样的东西:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
tabLayout.setupWithViewPager(pager)
val inProgressEventPlannerListFragment = EventPlannerListFragment.newInstance(false)
val archiveEventPlannerListFragment = EventPlannerListFragment.newInstance(true)
baseFragmentPagerAdapter = BaseFragmentPagerAdapter(
this, pager,
arrayOf(BaseFragment.getStr(R.string.inProgress), BaseFragment.getStr(R.string.archive)),
inProgressEventPlannerListFragment, archiveEventPlannerListFragment)
}
我要为此进行测试,以确保将存档片段放在带有存档页面名称的适配器中。
我可以使用Mockito / Roboelectric或仅使用jUnit。
感谢任何建议/代码示例。
答案 0 :(得分:0)
经过一番尝试,我做了这样的事情:
@RunWith(RobolectricTestRunner::class)
@Config(constants = BuildConfig::class)
class EventPlannerMainFragmentTest {
@Mock
lateinit var context: Context
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
Mockito.`when`(context.getString(R.string.archive)).thenReturn("Archive")
Mockito.`when`(context.getString(R.string.inProgress)).thenReturn("In progress")
}
@Test
fun checkFragmentsInsidePager() {
val evenPlannerMainFragment = EventPlannerMainFragment()
SupportFragmentTestUtil.startFragment(evenPlannerMainFragment, MainActivity::class.java)
val fragment0 = evenPlannerMainFragment.baseFragmentPagerAdapter!!.getItem(0)
val fragment0isArchive = fragment0.arguments!!.getBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE)
val pageTitle0 = evenPlannerMainFragment.baseFragmentPagerAdapter!!.getPageTitle(0)
val fragment1 = evenPlannerMainFragment.baseFragmentPagerAdapter!!.getItem(1)
val fragment1isArchive = fragment1.arguments!!.getBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE)
val pageTitle1 = evenPlannerMainFragment.baseFragmentPagerAdapter!!.getPageTitle(1)
println("Fragment 0:")
println(fragment0isArchive)
println(pageTitle0)
println("Fragment 1:")
println(fragment1isArchive)
println(pageTitle1)
if (fragment0isArchive) assertEquals(pageTitle0, context.getString(R.string.archive)) else assertEquals(pageTitle0, context.getString(R.string.inProgress))
if (fragment1isArchive) assertEquals(pageTitle1, context.getString(R.string.archive)) else assertEquals(pageTitle1, context.getString(R.string.inProgress))
}
欢迎任何建议;)