TableView内容的文本表示

时间:2013-09-02 18:54:34

标签: javafx-2 tableview jemmy jemmyfx

出于测试目的(使用JemmyFX),我想检查TableView的内容是否格式正确。例如:一列的类型为Double,并且已应用单元格工厂以将该数字显示为百分比:20%

如何验证值为0.2d时,单元格显示为20%

理想情况下,我正在寻找这些方面的东西:

TableColumn<VatInvoice, Double> percentVat = ...
assertEquals(percentVat.getTextualRepresentation(), "20%");

注意:我尝试直接使用TableCell,但getText()返回null:

TableCell<VatInvoice, Double> tc = percentVat.getCellFactory().call(percentVat);
tc.itemProperty().set(0.2);
assertEquals(tc.getText(), "20%"); //tc.getText() is null

2 个答案:

答案 0 :(得分:1)

到目前为止,我使用JemmyFX找到的最好的是以下内容:

public String getCellDataAsText(TableViewDock table, int row, int column) {
    final TableCellItemDock dock = new TableCellItemDock(table.asTable(), row, column);
    return dock.wrap().waitState(new State<String>() {
        @Override public String reached() {
            return dock.wrap().cellWrap().getControl().getText();
        }
    });
}

答案 1 :(得分:-1)

您可以尝试编辑单元格工厂。

tc.setCellFactory(new Callback<TableColumn, TableCell>(){
    @Override
    public TableCell call(TableColumn param){
         return new TableCell(){
             @Override
             public void updateItem(Object item, boolean isEmpty){
                 //...logic to format the text
                 assertEquals(getText(), "20%");
             }
         };
    }
});