Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание простейшего Unit Test Project в VS2015Co 
:(
    Опции темы
Arvalon
Дата 6.11.2015, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.4.2006
Где: Москва

Репутация: нет
Всего: нет



Пытаюсь понять основы тестирования, запнулся на самом начале.

Пробую по инструкции MSDN
Со своей стороны я сделал простой проект HelloWorld. Создаётся класс Car с одним полем string и двумя конструкторами, с параметром и без. А так же один метод, позволяющий вывести на экран приветственное сообщение или перезаписать текстовое поле.

Goodbyer.cs
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloWorld
{
    class Goodbyer
    {
        private string _who;

        public Goodbyer()
        {
            _who = "unnamed hero";
        }

        public Goodbyer(string who)
        {
            _who = who;
        }

        public string Message
        {
            get { return "Goodbye " + _who + "!"; }
            set { _who = value; }
        }
    }
}


Program.cs
Код

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Goodbyer myHero = new Goodbyer("IAM");
            myHero.Message = "NoAmI";
            Console.WriteLine(myHero.Message);
        }
    }
}

Далее я добавил в Solution ещё один проект типа Unit Test Project и прилиньковал в References ссылку на проект HelloWorld.

Проект HelloWorldTest/UnitTest1.cs готов для написания тестов
Код

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace HelloWorldTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
}

Далее я так понимаю нужно использовать разнообразные сравнительные методы класса Assert, похож / не похож результат выполнения методов моего тестируемого класса с каким-то эталоном (другим объектом, какой-нибудь константой и др.) Но вот тут у меня как раз затуп. Не могу понять как я например могу протестировать, что вбить в UnitTest1.cs:
    оба конструктора;
    метод вывода на экран/перезаписи поля _who.

ADD:
По правой кнопке мыши в коде в контекстном меню есть пункт Create Unit Tests, но по нажатию появляется ошибка, где бы я ни нажал Create Unit Tests is supported only within a publuc class or a publuc method.

ADD2:
В других примерах из сети встречал выражение Assert.Throw, но у меня IntelliSense вообще не предлагает такой метод у класса Assert.
PM   Вверх
a0730
Дата 7.11.2015, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Суть тестирования в том, что вызывается метод класса с определёнными параметрами и сравнивается результат.
Например, создадим экземпляр героя и проверим сообщение которое он возвращает.
[code=c#]
    [TestMethod]
    public void TestMethod1()
    {
        Goodbyer myHero = new Goodbyer("IAM");
        Assert.AreEqual("Goodbye IAM!", myHero.Message);
    }
[/code]

Кстати, для имени героя лучше сделать отдельное свойство.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.