2

単体テストを使用して、ソース コード内のいくつかの関数をテストしたいと考えています。テストを実行すると、テスト結果が得られません。

これが私がやろうとしている簡単なコードスニペットです:

#include <iostream>

using namespace std;
namespace UnitTest
{
    [TestClass]
    public ref class UnitTestBlueSmart

        int main(){
        public:
        [TestMethod()]
        hello();
        }
}

void hello(){
 cout<<"Hello World!";
}

これが機能しない理由を誰かが知っていますか?

4

1 に答える 1

2

問題は、単体テストを正しく実行していないことです。コンソールに出力するのではなく、 Assertsを取得しないことに依存する必要があります。

コンセプトは、メソッドをチェックし、それらが正しい値を返すことを確認することです。

詳細については、次のリンクを参照してください。

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);
}
于 2012-10-28T15:31:25.550 に答える