現在、モック オブジェクトの概念を単体テストに導入し始めています。特に、Moq フレームワークを使用しています。しかし、私が気付いたことの 1 つは、このフレームワークを使用してテストしているクラスのコード カバレッジが突然 0% になっていることです。
クラスをモックしているだけなので、実際のクラス自体を実行していないことがわかりました....しかし、これらのテストを作成し、コードカバレッジが正確な結果を返すようにするにはどうすればよいですか? モックを使用する一連のテストと、クラスを直接インスタンス化するための一連のテストを作成する必要がありますか。
気づかないうちに何か間違ったことをしているのではないでしょうか?
「MyClass」というクラスを単体テストしようとしている例を次に示します。
using Moq;
using NUnitFramework;
namespace MyNameSpace
{
[TestFixture]
public class MyClassTests
{
[Test]
public void TestGetSomeString()
{
const string EXPECTED_STRING = "Some String!";
Mock<MyClass> myMock = new Mock<MyClass>();
myMock.Expect(m => m.GetSomeString()).Returns(EXPECTED_STRING);
string someString = myMock.Object.GetSomeString();
Assert.AreEqual(EXPECTED_STRING, someString);
myMock.VerifyAll();
}
}
public class MyClass
{
public virtual string GetSomeString()
{
return "Hello World!";
}
}
}
私が何をすべきか知っている人はいますか?