0

次のように、QTableWidgetItem::column() の値に if ステートメントを含むいくつかの C++ Qt コードを単体テストしようとしています。

void on_resultsTable_currentItemChanged(QTableWidgetItem* currentItem, QTableWidgetItem* previousItem)
{
    if (currentItem != nullptr)
    {
        int column = currentItem->column();
        if (column == 0)
        {
            // Column0SpecificBehavior();
        }
    }
}

column() == 0 および column() != 0 のテスト ケースでこの関数をテストするには、2 つの QTableWidgetItem インスタンスを作成する必要があります。1 つは column() 0 で、もう 1 つは column() 1 です。

QTableWidgetItem::column() がデフォルトの-1ではなく0を返すようにするための可能な方法として、これを試しました:

QTableWidget table;
table.insertRow(0);
QTableWidgetItem currentItem("Row0Column0");
table.setItem(0, 0, &currentItem);

しかし、上記のコードでは、currentItem の column() は依然として -1 を返します。

QTableWidgetItem::column() の戻り値を設定する方法に関するアイデアはありますか?

4

1 に答える 1