我正在使用QTestLib框架编写自定义验证器在QTableView上的单元测试。其中最基本的测试用例如下:
双击第三列和第四行的表格单元格,并将数字“5”附加到其内容中。
简单地更改模型中的值或其他任何内容是不够的,测试用例应该像这样执行:
- 双击表格单元格以将其设置为编辑模式
- 按[End]键。
- 按[5]键。
注意:此问题有一个关于如何从代码中将表格单元格设置为编辑模式的答案,但单元测试应尝试遵循人类用户的可能性,即鼠标/键盘操作。
我发现可以使用QTableView::columnViewportPosition(int)和QTableView::rowViewportPosition(int)来检索单元格的X/Y位置。然而,使用QTest::mouseDClick(...)在指定的位置上双击既不选择单元格,也不将其设置为编辑模式:
// Retrieve X/Y coordinates of the cell in the third column and the fourth row
int xPos = m_pTableView->columnViewportPosition( 2 );
int yPos = m_pTableView->rowViewportPosition( 3 );
// This does not work
QTest::mouseDClick( m_pTableView, Qt::LeftButton, QPoint( xPos, yPos ) );
我如何仅使用鼠标/键盘操作来实现我上面描述的测试用例?
PS:我正在尝试在Windows XP 32位和Qt 4.6.1下进行此操作。
view->edit(index)
。 - Woltan