我知道,在圍棋它是常用的所謂TableDrivenTests實施測試的情況下,例如:我可以在C++中使用TableDrivenTests概念嗎?
func TestMyFunc(t *testing.T) {
var tTable = []struct {
input []float64
result float64
}{
{[]float64{1, 2, 3, 4, 5, 6, 7, 8, 9}, 102.896},
{[]float64{1, 1, 1, 1, 1, 1, 1, 1, 1}, 576.0},
{[]float64{9, 9, 9, 9, 9, 9, 9, 9, 9}, 0.0},
}
for _, pair := range tTable {
result := MyFunc(pair.input)
assert.Equal(t, pair.result, result)
}
}
鑑於測試用例表,實際測試通過 所有表只迭代條目和每個條目執行必要的測試。
我真的很喜歡這個去風格執行測試。所以我想知道,是否有可能在C++中使用類似的東西?如果可能的話,你能告訴我一個例子嗎?
編輯:我正在使用Qt Creator,我有一個類創建執行單元測試。我真正想知道的是,如果可以創建一個結構,其輸入輸入和輸出並遍歷條目以執行每個測試。由於我使用Qt,它不需要是'標準的C++結構',它可以是Qt提供的另一種數據結構。
不使用標準C++,因爲它沒有任何單元測試。你將不得不爲此找到一個圖書館。 – Rakete1111
謝謝@ Rakete1111。我編輯了我的問題。 – KelvinS
當然這是可能的。嘗試一下。 –