Android Studio单元测试找不到类文件!

大尾巴狼
  • 245
   就是一个方法里面逻辑比较多,查数据库,循环等等.比较复杂,我想测试一下他.是没有返回值的,我想看运行完成之后看看最后里面的变量是不是对的
  如果跑整个程序的话就太慢了, 编译,运行, 登陆 等等.太长了,效率太低,本人菜鸟..之前没有写过测试,有时候简单的功能,在Eclipse里面写一个方法,可以测试,可是这个里面有包含其他对象.请看代码.

这个是要执行的方法,里面包含其他对象.其他类.返回值无所谓,我就看看里面变量执行完之后的值.

@JavascriptInterface
    public String getAllMonitorItem() {
        //一个仪器有多重运行模式,取交集!
        List<MonitorSuites> monitorSuites = MonitorSuitesDao.getInstance(mainViewImpl.getContext()).queryAll();
        if (monitorSuites != null) {
            String[] culumnValue = new String[monitorSuites.size()];
            for (int i = 0; i < monitorSuites.size(); i++) {
                culumnValue[i] = monitorSuites.get(i).getId();
            }
            List<MeterModes> meterModes = MeterModesDao.getInstance(mainViewImpl.getContext()).queryByParams("suite_id", culumnValue);

            if (meterModes != null) {
                List<MainItem> mainItems = new ArrayList<>();
                //1.取交集设置Bean的Name
                for (MonitorSuites outData : monitorSuites) {
                    for (MeterModes inData : meterModes) {
                        if (outData.getId().equals(inData.getSuiteId())) {
                            MainItem item = new MainItem();
                            item.setName(outData.getName());
                            item.setMeterCode(inData.getMeterCode());
                            mainItems.add(item);
                        }
                    }
                }

                //2.取参数
                //          2.1用于查询meter_list的signal_flag
                //          2.2用于查询是否绑定了设备.
                String[] connectedColumnValues = new String[meterModes.size()];
                for (int i = 0; i < meterModes.size(); i++) {
                    connectedColumnValues[i] = meterModes.get(i).getMeterCode();
                }

                //2.1取设备类型
                List<MeterList> signal_flags = MeterListDao.getInstance(mainViewImpl.getContext()).queryByParams("code", connectedColumnValues);
                if (signal_flags != null) {
                    for (MainItem mainItem : mainItems) {
                        for (MeterList signal_flag : signal_flags) {
                            if (mainItem.getMeterCode().equals(signal_flag.getCode())) {
                                mainItem.setDeviceType(signal_flag.getSignalFlag());
                            }
                        }
                    }
                }
                //2.2设置是否绑定了
                List<MeterConnected> meter_code = MeterConnectedDao.getInstance(mainViewImpl.getContext()).queryByParams("meter_code", connectedColumnValues);
                for (MainItem mainItem : mainItems) {
                    for (MeterConnected meterConnected : meter_code) {
                        if (mainItem.getMeterCode().equals(meterConnected.getIdCode())) {
                            mainItem.setBinded(true);
                        } else {
                            mainItem.setBinded(false);
                        }
                    }
                }
                return JSON.toJSONString(mainItems);
            } else {
                L.d("MonitorMode表中无数据");
                return null;
            }
        } else {
            L.d("MonitorSuites表中无数据");
            return null;
        }
    }

设置单元测试!
设置单元测试.

这是生成出来的代码.
方法里面是我自己写的.

public class MainPresenterTest {

    private MainPresenter presenter;

    @Before
    public void setUp() throws Exception {
        presenter = MainPresenter.getInstance(new MainViewImpl() {
            @Override
            public Context getContext() {
                return getContext();
            }

            @Override
            public void showMessage(String message) {

            }
        });
    }

    @Test
    public void getAllMonitorItem() throws Exception {
        presenter.getAllMonitorItem();
    }

}

执行后的样子.
执行完了,说找不到类文件.

请大牛帮忙看看.是什么问题.

回复
阅读 2.7k
1 个回答
✓ 已被采纳

我也遇到过很多次这个问题,出现 empty test suite 之后,再运行一次这个单元测试,就是正常的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏