我有一个带有python脚本的套件,可以使用squish测试Java应用程序。
在测试中,我得到一个名为menuObj的对象,其中包含一个名为items的属性,其类型为JavaArray。当我尝试使用getattr()获得该属性时,我得到一个包含属性而不是此类列表(或包含列表中各项的字符串)的对象。
什么是正确的方法?
expected = [MenuItem {Project Ctrl + Shift + D},MenuItem {System Ctrl + Shift + M},MenuItem {Panel}] 获得=包含三个属性。
答案 0 :(得分:0)
在访问属性或调用作为/返回Java数组的方法时,压缩会产生JavaArray。
要访问该数组中的元素,请使用JavaArray.at(int)方法:
Job job = Job.getInstance(cfg);
//指定本程序的jar包所在的本地路径 把jar包提交到yarn
job.setJarByClass(WordcountDriver.class);
job.setMapperClass(WordcountMapper.class);
job.setReducerClass(WordcountReduce.class);
job.setNumReduceTasks(0);
//job.setInputFormatClass(ERFInputFormat.class);
job.setOutputFormatClass(TableOutputFormat.class);
job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, "gua");
job.setMapOutputKeyClass(ImmutableBytesWritable.class);
job.setMapOutputValueClass(Put.class);
使用...之间(对我来说)应该没有区别
items_array = swtMenuObj.items
test.log("Type of items container/array: %s" % className(items_array))
test.log("A: Item 0 text: %s" % items_array.at(0).text)
// Example output/log entries:
// JavaArray
// &File
items_array2 = getattr(swtMenuObj, "items")
test.log("Type of items container/array: %s" % className(items_array))
test.log("B: Item 0 text: %s" % items_array2.at(0).text)
// Example output/log entries:
// JavaArray
// &File
...和...
menuObj.items
...两者都产生JavaArray类型的对象。