我正在尝试单独测试Fragment
。为此,我正在尝试FragmentScenario
。
Android Documentation在这里提供了一个很好的例子。但是我的测试总是失败,因为我的片段将活动投射到了onAttach
的接口上。
FragmentScenario
挂接了一个Activity
容器,该容器(显然)未实现我的片段所需的接口。
我的问题是如何解决这个问题?如何强制容器活动来实现所需的接口?还是有更好的方法呢?也许删除onAttach
上的演员表,然后用其他方法替换?
答案 0 :(得分:1)
使用钩子分配成员,扩展片段,覆盖钩子以提供该接口的模拟。如果不是,请使用DI将其注入到公共成员中,然后直接分配一个模拟对象。
chars
答案 1 :(得分:0)
我采取了另一种方法。我最终将ActivityScenario
用于具有活动回调的片段。
在我的开发版本中创建了一个AccountTestActivity。该活动从我要测试的片段中实现了我所有的各种回调(LoginCallback,CreateAccountCallback等)。
我不想打开类进行测试或添加其他功能。
scenario = ActivityScenario.launch(AccountTestActivity::class.java).onActivity {
logInFragment = LogInFragment()
it.startFragment(logInFragment)
}