1.實現(xiàn)Iterator<>接口撵割,初始化參數(shù)傳入對應(yīng)的sql和測試數(shù)據(jù)的class對象
package com.styd.utils.common;
import com.styd.utils.HttpBase;
import javax.persistence.Query;
import java.util.Iterator;
import java.util.List;
public class DataProviderFactory implements Iterator<Object>{
public String sql;
public int length;
public List<Object> list;
public int cursor = -1;
public DataProviderFactory(String sql,Class clazz){
this.sql = sql;
Query query = HttpBase.dataBaseUtil.entityManager.createNativeQuery(sql,clazz);
list = query.getResultList();
length = list.size();
}
@Override
public boolean hasNext() {
return cursor+1 < length;
}
@Override
public Object next() {
cursor ++;
return list.get(cursor);
}
}
2.實現(xiàn)具體的dataprovider有送,返回DataProviderFactory對象
@DataProvider(name = "memberCardInfo")
public Iterator<Object> dataProvider(){
String sql = "select * from CreateShopMemberCard";
return new DataProviderFactory(sql,CreateShopMemberCardBean.class);
}