Android:如何对Android片段执行单元测试

Android:如何对Android片段执行单元测试,android,Android,我有一个Android选项卡布局,可切换视图 文件结构如下: 有一个活动类:TabMainActivity.java 在此活动下,有一个片段类:bookLockerFragment.java 这个片段类链接到一个包含各种按钮的XML文件 public class bookLockerFragment extends Fragment { Button btnSis; public View onCreateView(LayoutInflater inflater, ViewG

我有一个Android选项卡布局,可切换视图

文件结构如下:

  • 有一个活动类:
    TabMainActivity.java

  • 在此活动下,有一个片段类:
    bookLockerFragment.java
这个片段类链接到一个包含各种按钮的XML文件

public class bookLockerFragment extends Fragment {
    Button btnSis;
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_booklocker, container, false);
        btnSis = (Button) rootView.findViewById(R.id.btnSis);
     }
 .......
 }
我已经阅读了vogella活动测试教程,但是关于fragment的单元测试的信息很少

我试图编写一些代码,但被困在这行:

transaction.add(R.layout.fragment_booklocker, fragment, "tag");
我得到以下错误:

FragmentTransaction类型中的add(int,Fragment,String)方法不适用于参数(int,booklockertest,String)

代码:

公共类booklockertest扩展
ActivityInstrumentationTestCase2{
私人活动能力;
片段;
碎片管理器;
公共书柜测试{
super(TabMainActivity.class);
//TODO自动生成的构造函数存根
}
受保护的void setUp()引发异常{
super.setUp();
mActivity=getActivity();
}
私有片段startFragment(booklockertest片段){
零碎交易=
mActivity.getSupportFragmentManager().beginTransaction();
添加(R.layout.fragment_booklocker,fragment,“tag”);
commit();
getInstrumentation().waitForIdleSync();
碎片碎片=
mActivity.getSupportFragmentManager().findFragmentByTag(“标记”);
返回碎片;
}
公共void testFragment(){
booklockertest片段=新的booklockertest(){
//在此处重写方法并添加资产。
};
碎片碎片=起始碎片(碎片);
}
}

偶然发现这一点,您可能已经找到了答案,但是

private Fragment startFragment(booklockertest fragment) { ... }
...
public void testFragment() {
    booklockertest fragment = new booklockertest() {
        //Override methods and add assertations here.
    };

    Fragment frag = startFragment(fragment);
}
应该是

private Fragment startFragment(bookLockerFragment fragment) { ... }
...
public void testFragment() {
    bookLockerFragment fragment = new bookLockerFragment() {
        //Override methods and add assertations here.
    };

    Fragment frag = startFragment(fragment);
}
private Fragment startFragment(bookLockerFragment fragment) { ... }
...
public void testFragment() {
    bookLockerFragment fragment = new bookLockerFragment() {
        //Override methods and add assertations here.
    };

    Fragment frag = startFragment(fragment);
}