Je suis en train de tester un code C++ sur un cadre Nunit mais je continue à obtenir l'exception suivanteGestion des exceptions pour les tests unitaires en C++
System.Runtime.InteropServices.SEHException : External Component has thrown an exception.
qui est censé être tout à fait normal (je suppose) de toute façon je veux ignorer il. (À savoir l'utilisation ExpectedException) Ceci est mon fichier .h
[Test, Description("Tests if an Entity has been successfully Locked")]
void test_LockOperation();
et le fichier .cpp
void TestDmObstacles::test_LockOperation()
{
lockVal = DbtoDmObstaclesAdapter::lock(CmnGuid::parseString(L"3B6DB8F8-4BA7-DD11-B6A7-001E8CDE165C"));
//When lock is successful the lockVal is 0
Assert::AreEqual(0, lockVal);
}
Je veux utiliser ExpectedException mais je ne sais pas comment le faire en C++. J'ai essayé le try/méthode de capture aussi bien, mais ça n'a pas marché (je viens de mettre le Assertion dans le bloc catch)
PS: Je ne peux pas utiliser un autre cadre, il doit être Nunit
EDIT
Voici l'approche try/catch je
void TestDmObstacles::test_LockOperation()
{
try
{
lockVal = DbtoDmObstaclesAdapter::lock(CmnGuid::parseString(L"3B6DB8F8-4BA7-DD11-B6A7-001E8CDE165C"));
}
catch (...)
{
//Assert::Fail();
Assert::AreEqual(0, lockVal);
}
}
_ "Je ne peux pas utiliser un autre framework, ça doit être Nunit" _ - Je suis toujours curieux, * pourquoi * !? – stakx
Je suis au travail et je ne suis pas autorisé à télécharger ou installer d'autres applications qui ne sont pas déjà sur ma machine! ... si simple et stupide que cela – Reda
Pouvez-vous donner la méthode try/catch que vous avez utilisée. Attraper une exception est vraiment la seule façon sensée de tester qu'elle a été lancée, mais peut-être que vous ne l'avez pas fait correctement. – beldaz