Я хочу протестировать несколько функций в моем исходном коде с помощью модульных тестов. Теперь, если я проведу свой тест, я не получу никаких результатов теста.
Вот простой фрагмент кода, который я пытаюсь сделать:
#include <iostream>
using namespace std;
namespace UnitTest
{
[TestClass]
public ref class UnitTestBlueSmart
int main(){
public:
[TestMethod()]
hello();
}
}
void hello(){
cout<<"Hello World!";
}
Кто-нибудь знает, почему это не работает?
Проблема в том, что вы не выполняете модульные тесты правильно.
Вы должны полагаться на то, чтобы не получить Утверждает, не на печать на консоль.
Идея состоит в том, чтобы проверить методы и убедиться, что они возвращают правильное значение.
Смотрите следующие ссылки для более подробной информации:
http://whinery.wordpress.com/2012/07/21/native-c-unit-testing-with-ms-test/
http://msdn.microsoft.com/en-us/library/ms182532.aspx
В частности, используя ваш код, пример правильного модульного теста будет:
string hello()
{
return "Hello World!";
}
и создание TestMethod, который будет утверждать, если значение неверно.
Например:
[TestMethod]
void HelloTest()
{
string expected = "Hello World";
string result = hello();
Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual(expected, result);
}
Других решений пока нет …