юнит-тесты во время создания кода

Download Report

Transcript юнит-тесты во время создания кода

DevCon•12
// msdevcon.ru
23-24 мая, 2012 г.
Microsoft
#msdevcon
Модульное тестирование в
Visual Studio 11
ДМИТРИЙ АНДРЕЕВ
Эксперт по разработке информационных систем
Microsoft
@dmandreev | [email protected]
// DevCon•12
Юнит-тестирование в Visual Studio 11
ориентировано на разработчиков,
которые пишут и запускают юнит-тесты
во время создания кода.
Анализ жалоб и пожеланий
Использовать альтернативные системы юниттестирования
Репутация MS-Test как медленной системы для .Net
Отсутствие поддержки тестирования нативного кода
MS-Test очень медленно развивается по сравнению с остальными
(xUnit.net, BDD frameworks, mocking frameworks, и т.д.)
Юнит-тестирование в Visual Studio оптимизировано
для тестировщиков
Плохо поддерживаются Agile и TDD
Знакомство с новым
обозревателем юнит-тестов
Демонстрация
#msdevcon
Архитектура
Сделано для разработчиков
Используйте любую систему
В комплекте поставляется:
MS-Test для управляемого кода
MS-Test для неуправляемого кода (**НОВОЕ**)
Плагины сторонних разработчиков
NUnit
xUnit.net
MbUnit
Chutzpath – JavaScript тесты
Юнит-тесты SQL Server
Другие
Напишите свой плагин!
Customizing for Testing By Using the Visual Studio SDK
Улучшения в MS-Test
Производительность и масштабируемость
Поддержка асинхронного запуска (Async)
Нормальная поддержка 64-бит и .Net multitargeting
Доступно в редакции Express!
Асинхронные тесты
[TestMethod]
public async Task MyAsyncTest()
{
var result = await SomeLongRunningOperation();
Assert.IsTrue( result );
}
Юнит-тестирование
асинхронных методов в MSTest
Демонстрация
#msdevcon
Строгая совместимость с VS 2010
Юнит-тест проекты VS 2010 будут «просто
работать» в VS 11
Не нужно обновление
Двустороння обратная совместимость с VS 2010
TeamBuild в TFS 11 настраивается
Запуск тестов, совместимых с VS 2010
Запуск новых VS 11 тестов
Изоляция для лучшего тестирования
Новый VS 11 Fakes Framework
Позволяет тестировать практически ВСЁ в изоляции
На основе научно-исследовательской
разработки “Moles” (проект Microsoft Research)
Две концепции
Заглушки (Stubs) – реализация интерфейсов или абстрактных
классов
Прослойки (Shims) – сгенерированные классы
Перехват и подмена вызовов существующих объектов, включая .Net BCL!
Использование fakes для
изолированных юнит-тестов
Демонстрация
#msdevcon
Рекомендации
Заглушки
Естественное расширение широко известных стратегий тестирования
Основной способ для поддержки изоляции
Прослойки
Невообразимо мощный и иногда единственный способ
протестировать… и огромное зло! 
Начинайте использовать для тестирования существующего кода
Но не останавливайтесь на этом…
Старайтесь сделать рефакторинг кода, чтобы прослойки больше не
понадобились
Затем уберите их
Покрытие кода в VS 11
Анализ покрытия одним нажатием
Анализ для выбранных тестов
Как конкретные тесты покрывают систему
Поддержка неуправляемого кода (через
MS-Test Native Framework)
Работает с системами тестирования
сторонних производителей
Покрытие кода
Демонстрация
#msdevcon
Поддержка Team Build
Если это работает в VS – будет работать и в
Team Build
Поддержка систем сторонних производителей
Изоляция от Visual Studio Fakes Framework
Покрытие кода
Плюс…
Оценка влияния на тесты (Test Impact Analysis)
Непрерывное тестирование
Запуск тестов это естественная часть сборки
продукта
Опция “Запустить тесты после сборки”
запускает все тесты после каждой
успешной сборки
Непрерывное тестирование
Демонстрация
#msdevcon
Юнит-тестирование в Visual
Studio 11 ориентировано на
разработчиков, которые пишут и
запускают юнит-тесты во время
создания кода.
Юнит-тестирование в Visual Studio 11
ориентировано на разработчиков, которые
пишут и запускают юнит-тесты во время
создания кода.
Новая версия Visual Studio!
Доступна сегодня на: http://vs11.ru
#msdevcon
Полезные материалы
Visual Studio Managed Unit Testing Framework (aka MS-Test)
http://aka.ms/mstest-dev11
xUnit.net
Информация: http://xunit.codeplex.com/
Скачать: http://aka.ms/xunit-vs11
NUnit
Информация: http://nunit.org/
Скачать: http://aka.ms/nunit-vs11
MbUnit
Информация: https://github.com/Gallio/Gallio-VS2011-Integration
Скачать: http://aka.ms/mbunit-vs11
Пожалуйста
Оцените доклад и мастерство докладчика.
Форма для оценки находится в вашем инфопакете.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the
part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.