Как подделать HTML-контент для модульного тестирования метода - PullRequest
1 голос
/ 20 марта 2012

Я написал решение c #.

Я хочу написать модульные тесты для двух классов:

HtmlAgilityPackHtmlProvider, HtmlContentManager

код можно скачать с: http://ge.tt/7lDhlFF

Но не может написать самый простой тест.

Я не уверен, как подделать HTML-контент и проверить результаты на нем.

Я пытался:

  [TestClass]
    public class HtmlContentManagerUT
    {

        ////no need, only wrapper
        //[TestMethod]
        //public void GetRootContentAsByteArray_GoogleAsInput_NoException()
        //{
        //   IHtmlProvider htmlProvider = new HtmlAgilityPackHtmlProvider();
        //   var rootContentAsByteArray = htmlProvider.GetRootContentAsByteArray("https://www.google.com/");
        //   Assert.IsTrue(RootContentAsByteArray.SequenceEqual());
        //}


        [TestMethod]
        public void GetRootContentAsByteArray_GoogleAsInput_NoException()
        {
            IHtmlProvider htmlProvider = new HtmlAgilityPackHtmlProvider();
            var externalCss = htmlProvider.GetExternalCss();
            Assert.IsTrue(externalCss.SequenceEqual());
        }
    }

Если я должен опубликовать это в обзоре кода stackoverflow -

Прокомментируйте, и я удалю текущее сообщение.

1 Ответ

0 голосов
/ 20 марта 2012

Вы должны взглянуть на эти методы:

Dependency_injection

Mock_object

Но я действительно не понял, что вы пытаетесь сделать. Вы пытаетесь выполнить модульное тестирование загруженного кода? Если это так, вы не должны делать это. Вы должны заботиться только о коде, который вы создали. Если ваш код использует какой-либо сторонний API, вы должны инкапсулировать его в свои собственные классы и протестировать их.

Если вы не пытаетесь протестировать сторонний API, вы должны сначала знать, что вам нужно тестировать, а что нет. Когда у вас есть такие классы, как HTMLProviders, может иметь смысл протестировать его при некоторых обстоятельствах, таких как тестирование бизнес-кода, который будет его использовать. Если вы не разрабатываете API, вы должны заботиться только о том, что имеет смысл в вашей бизнес-логике.

Но нам нужна дополнительная информация, чтобы помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...