В настоящее время я начинаю вводить концепцию объектов Mock в свои модульные тесты. В частности, я использую структуру Moq. Тем не менее, одна из вещей, которые я заметил, это то, что внезапно классы, которые я тестирую с использованием этой структуры, отображают покрытие кода 0%.Как я могу использовать Mock Objects в своих модульных тестах и по-прежнему использовать Code Coverage?
Теперь я понимаю, что, поскольку я просто издеваюсь над классом, его не запускает сам фактический класс .... но как я могу написать эти тесты и получить код Покрытие возвращать точные результаты? Должен ли я писать один набор тестов, которые используют Mocks и один набор для непосредственного создания класса.
Возможно, я что-то делаю неправильно, не осознавая этого?
Вот пример меня пытается тестовое устройство класс под названием «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!";
}
}
}
Кто-нибудь знает, что я должен делать по-другому?
Отсутствует скобка в примере GetSomeString после параметра. – 2017-11-13 12:03:59