首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

采用Iterator<Object[]> dataProvide()方式的数据驱动导致调用顺序的异常

2012-08-15 
采用IteratorObject[] dataProvide()方式的数据驱动导致调用顺序的错误!TestNG数据驱动@DataProvider的

采用Iterator<Object[]> dataProvide()方式的数据驱动导致调用顺序的错误!

TestNG数据驱动@DataProvider的方式有两种:

?

第一种: Iterator<Object[]> dataProvide()

第二种: Object[][] dataProvide()

?

其中,当存在@BeforeGroups、@AfterGroups方法时,第一种形式的调用顺序错误:@AfterGroups方法会在函数第一组数据结束后调用。(应该将所有数据都执行一遍才算是group执行结束。) 因此,只能采用Object[][] dataProvide()形式的@DataProvider。

代码修改如下:

修改前:

?

@DataProvider(name = "data")public Iterator<String[]> data(){      List<String[]> list = ...      return list.iterator();}
?

修改后:

?

@DataProvider(name = "data")public Object[][] data(){        List<String[]> list = ...        String[][] result = new String[list.size()][];        Return list.toArray(result);  }

热点排行