Googletest peut-il être paramétré en valeur avec plusieurs types de paramètres différents qui correspondent à la flexibilité de mbUnit?

Je voudrais écrire C++ Google tests qui peuvent utiliser la valeur paramétrée tests avec plusieurs paramètres de différents types de données, idéalement correspondant à la complexité des opérations suivantes mbUnit tests écrits en C++/CLI.

Remarque comment compacte c'est, avec le [Test] attribut indiquant c'est une méthode de test et la [Row(...)] des attributs définissant les valeurs pour une instanciation.

[Test]
[Row("Empty.mdb", "select count(*) from collar", 0)]
[Row("SomeCollars.mdb", "select count(*) from collar", 17)]
[Row("SomeCollars.mdb", "select count(*) from collar where max_depth=100", 4)]
void CountViaDirectSQLCommand(String^ dbname, String^ command, int numRecs)
{
   String^ dbFilePath = testDBFullPath(dbname);
   {
       StAnsi fpath(dbFilePath);
       StGdbConnection db( fpath );
       db->Connect(fpath);
       int result = db->ExecuteSQLReturningScalar(StAnsi(command));
       Assert::AreEqual(numRecs, result);
   }
}

Ou mieux encore, cette plus exotiques de tests à partir de C# (en poussant les limites de ce qui peut être défini .Net attributs au-delà de ce qui est possible en C++/CLI):

[Test]
[Row("SomeCollars.mdb", "update collar set x=0.003 where hole_id='WD004'", "WD004",
    new string[] { "x", "y" },
    new double[] { 0.003, 7362.082 })]  //y value unchanged 
[Row("SomeCollars.mdb", "update collar set x=1724.8, y=6000 where hole_id='WD004'", "WD004",
    new string[] { "x", "y" },
    new double[] { 1724.8, 6000.0 })]
public void UpdateSingleRowByKey(string dbname, string command, string idValue, string[] fields, double[] values)
{
...
}

La aider dit Valeur paramétrée tests vous permettra d'écrire votre test qu'une seule fois et ensuite facilement instancier et de l'exécuter avec un nombre arbitraire de valeurs de paramètre. mais je suis assez certain que c'est en se référant au nombre de cas de test.

Même sans faire varier les types de données, il me semble que paramétré test ne peut prendre un paramètre?

source d'informationauteur Andy Dent