如何使用片段场景测试片段?

时间:2018-12-17 07:38:22

标签: android android-fragments android-testing

我正在尝试单独测试Fragment。为此,我正在尝试FragmentScenario

Android Documentation在这里提供了一个很好的例子。但是我的测试总是失败,因为我的片段将活动投射到了onAttach的接口上。​​

FragmentScenario挂接了一个Activity容器,该容器(显然)未实现我的片段所需的接口。

我的问题是如何解决这个问题?如何强制容器活动来实现所需的接口?还是有更好的方法呢?也许删除onAttach上的演员表,然后用其他方法替换?

2 个答案:

答案 0 :(得分:1)

使用钩子分配成员,扩展片段,覆盖钩子以提供该接口的模拟。如果不是,请使用DI将其注入到公共成员中,然后直接分配一个模拟对象。

chars

答案 1 :(得分:0)

我采取了另一种方法。我最终将ActivityScenario用于具有活动回调的片段。

在我的开发版本中创建了一个AccountTestActivity。该活动从我要测试的片段中实现了我所有的各种回调(LoginCallback,CreateAccountCallback等)。

我不想打开类进行测试或添加其他功能。

scenario = ActivityScenario.launch(AccountTestActivity::class.java).onActivity {
        logInFragment = LogInFragment()
        it.startFragment(logInFragment)
    }