FEST:通过他的类获取组件(继承自基本组件)

时间:2012-07-26 17:12:27

标签: java swing user-interface testing fest

我有这段代码:

   //FrameFixture frame = (...got it from window, main frame...)
   JTableFixture table = frame.table(new GenericTypeMatcher<JTable>(JTable.class) {
         @Override protected boolean isMatching(JTable table) {
            return (table instanceof myTreeTable); 
         }  
    });

是不是有更好的语法糖用于通过他的.class(继承自基本组件)获取组件?

1 个答案:

答案 0 :(得分:1)

如果您需要ComponentMatcher的实施,那么TypeMatcher可以根据类型进行匹配。

TypeMatcher方法无法使用GenericTypeMatcher,因为它们需要TypeMatcher

GenericTypeMatcherComponentMatcher都实现GenericTypeMatcher但不在同一层次结构中。

class ConcreteTypeMatcher<T extends Component> extends GenericTypeMatcher<T> { Class<T> type; public ConcreteTypeMatcher(Class<T> supportedType) { super(supportedType); this.type = supportedType; } @Override protected boolean isMatching(T arg) { return type.isInstance(arg); } } 是抽象的,因此您必须提供实现。如果需要,您可以使用自己的扩展,即:

JTableFixture table = frame.table(
      new ConcreteTypeMatcher<myTreeTable>(myTreeTable.class));

并像这样使用它:

{{1}}