我正在使用SWT机器人测试RCP Windows应用程序。该应用程序就像一个向导,包含两个相互依赖的部分堆栈。我正在使用零件描述符在具有removeOnHide属性的零件堆栈中创建零件,因为我想在关闭时从堆栈中删除零件。因此,当我使用机器人进行测试时,第一个测试运行良好。在@AfterClass中,我正在关闭零件,当第二个测试开始时,机器人不再能够找到创建的零件(该零件在应用程序上可见)。
我需要提到的是,在@PersistState上我清理了零件堆栈,因为我根本不希望有持久性。
我试图删除removeOnHide属性并且不清除堆栈,它的工作原理是这样的,但这不是应用程序的行为。
private void addPart(String descriptor, String partStackId) {
MPartStack stack = (MPartStack)
modelService.find(partStackId, app);
MPart newPart = null;
newPart = partService.createPart(descriptor);
List<MStackElement> children = stack.getChildren();
children.add(newPart);
partService.showPart(newPart, PartState.ACTIVATE);
}