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

查看:358
本文介绍了java - Android Studio单元测试找不到类文件!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

   就是一个方法里面逻辑比较多,查数据库,循环等等.比较复杂,我想测试一下他.是没有返回值的,我想看运行完成之后看看最后里面的变量是不是对的
  如果跑整个程序的话就太慢了, 编译,运行, 登陆 等等.太长了,效率太低,本人菜鸟..之前没有写过测试,有时候简单的功能,在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();
    }

}

执行后的样子.

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

解决方案

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

这篇关于java - Android Studio单元测试找不到类文件!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆