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