Содержание
- 2. Будет ли тест понятен ревьюеру? Можно ли быстро убедиться в корректности теста? Можно ли быстро понять,
- 3. [TestFixture] public class Superman_Should { [Test] public void SaveKittenFromTree() { … superman.Act(); Assert.That(kitten.IsSaved()); } [Test] public
- 4. [TestFixture] public class Superman_Should { [Test] public void SaveKittenFromTree() {…} [Test] public void WearRedBlueSuit_WhenAtWork() {…} }
- 5. System Under Test имя класса, имя метода Условия вход, состояние Результат ожидаемое поведение или требования для
- 6. ParserTests.TestParse ParserTests.Parse_Fails ParserTests.Parse_BigNumbers ParserTests.Parse_NumbersGreaterThanMaxInt ParserTests.Fails_OnNegativeNumbers ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 7. IsAdult_AgeLessThan18_False ParseInt_Should.Fails_OnNonNumber Stack_Should.BeEmpty_AfterCreation When_MandatoryFieldsAreMissing_Expect_StudentAdmissionToFail ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 8. ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 9. ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 10. Arrange Act Assert ПРАВИЛЬНАЯ СТРУКТУРА ТЕСТА
- 11. АНТИПАТТЕРНЫ https://habr.com/post/43761/
- 12. ПОЧЕМУ НЕ ВСЕ ПИШУТ ТЕСТЫ?
- 13. ПИШЕМ ТЕСТЫ ЛЕГКО ТЕСТ НАПИСАТЬ – КАК ЧАЙ ПОПИТЬ
- 14. БОРЬБА С ДУБЛИРОВАНИЕМ
- 15. СБОРКА И РАЗБОРКА ОКРУЖЕНИЯ [OneTimeSetUp|OneTimeTearDown] [SetUp|TearDown]
- 16. [TestFixture] public class Mailbox_Should { private Mailbox mailbox; [SetUp] public void SetUp() { mailbox = new
- 17. OBJECT MOTHER & TEST DATA BUILDER
- 18. PARAMETRIZED TESTS ОНИ ЖЕ DATA DRIVEN
- 19. ДОПОЛНИТЕЛЬНЫЕ ТРЮКИ
- 20. Assert.AreEqual(expected, actual) VS Assert.AreEqual(actual, expected) Assert.That(2+2, Is.EqualTo(4)) Assert.That(x, IResolveConstraint) ASSERT // O_o ?!?
- 21. (2+2).Should().Be(4) flag.Should().BeTrue() new[] {1,2,3} .Should().AllBeEquivalentTo(new [] {3,2,1}); new[] {1,2,3} .Should().AllBeEquivalentTo( new [] {1,2,3}, options => options.WithStrictOrdering());
- 22. Action action = () => { var z = x / y; }; action.ShouldThrow (); ОЖИДАНИЕ
- 23. [Test, Timeout(1000)] public void ShouldDoInTimeout() { … } ОГРАНИЧЕНИЕ ПО ВРЕМЕНИ
- 24. [Test, Category("Smokie")] public void Test() { … } ВЫБОР ТЕСТОВ ДЛЯ ПРОГОНА
- 25. LIVE TEMPLATES Resharper → Tools → Templates Explorer Import tests-templates.DotSettings tf — TestFixture tt — Test
- 26. HOTKEYS Ctrl+T+R Ctrl+U+R
- 27. CHALLENGE
- 28. WordsStatistics WordStatisticsXXX Ctrl+F5 CHALLENGE
- 29. Тесты по спецификации — это просто Как взаимодействуют разные пункты спецификации? CHALLENGE РАЗБОР
- 30. Важен не только результат, но и время выполнения CHALLENGE РАЗБОР
- 31. Тесты не заменяют Code Review Code Review не заменяет тесты CHALLENGE РАЗБОР
- 33. Скачать презентацию

![[TestFixture] public class Superman_Should { [Test] public void SaveKittenFromTree() { … superman.Act();](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-2.jpg)
![[TestFixture] public class Superman_Should { [Test] public void SaveKittenFromTree() {…} [Test] public](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-3.jpg)










![СБОРКА И РАЗБОРКА ОКРУЖЕНИЯ [OneTimeSetUp|OneTimeTearDown] [SetUp|TearDown]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-14.jpg)
![[TestFixture] public class Mailbox_Should { private Mailbox mailbox; [SetUp] public void SetUp()](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-15.jpg)




![(2+2).Should().Be(4) flag.Should().BeTrue() new[] {1,2,3} .Should().AllBeEquivalentTo(new [] {3,2,1}); new[] {1,2,3} .Should().AllBeEquivalentTo( new []](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-20.jpg)

![[Test, Timeout(1000)] public void ShouldDoInTimeout() { … } ОГРАНИЧЕНИЕ ПО ВРЕМЕНИ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-22.jpg)
![[Test, Category("Smokie")] public void Test() { … } ВЫБОР ТЕСТОВ ДЛЯ ПРОГОНА](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1156638/slide-23.jpg)







Planning the Post Sprawl Era
Единицы измерения информации
Предложения по развитию ГАС Выборы. Информзащита
Прохождение учебно-производственной практики
Решение 3D задач. Задача о растекании токов
Основы компьютерной графики
Искусство оформления книги
Операции импликация и эквивалентность
Алгоритм выполнения заданий
Основные ошибки при работе в КПИ ЕГИССО и через СМЭВ. Пути их устранения
Структуры данных
Разработка приложения с графическим интерфейсом средствами С# Windows forms
Примеры новостей по каналам коммуникации
Вводная презентация
Технология программирования на языке Рython и разработка программ для машинного обучения (Лекция iv)
Блок Прибавить к экрану
Учимся делать размерные сетки
Информационная база для научных исследований в СЗИУ РАНХиГС
Operators and Expression / 1 of 25
Hаllowееn game
Информация и информационные процессы. Человек и информация
Python в качестве альтернативного языка обучения программированию
Информация вокруг нас
Киберспорт – история развития и анализ
Язык запросов
Работа cam-систем (продолжение). Информационные системы и технологии. Лекция 5
Вирусы и антивирусные программы
Антикризисный раздел на сайте Nutriclub.ru