Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
20 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
503.41 kB
Просмотров:
56
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![ТЕСТИРОВАНИЕ https github.com](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img0.jpg)
Содержание слайда: ТЕСТИРОВАНИЕ
https://github.com/kontur-csharper/testing
№2 слайд![Тесты как спецификация](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img1.jpg)
Содержание слайда: Тесты как спецификация
№3 слайд![Доверие тестам Будет ли тест](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img2.jpg)
Содержание слайда: Доверие тестам
Будет ли тест понятен ревьюеру?
Сможет ли ревьюер быстро убедиться в корректности теста?
№4 слайд![Тесты как спецификация class](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img3.jpg)
Содержание слайда: Тесты как спецификация
class Superman_should {
[Test]
public void save_kitten_from_tree(){
…
superman.Act();
Assert.IsTrue(kitten.IsSaved());
}
[Test]
public void wear_redBlue_suit(){
…
}
…
}
№5 слайд![Правильная структура теста](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img4.jpg)
Содержание слайда: Правильная структура теста
Arrange
Act
Assert
№6 слайд![Имя теста как спецификация](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img5.jpg)
Содержание слайда: Имя теста как спецификация
Что должно быть в имени теста?
Conditions: preconditions, input, state
System Under Test: class name, method name
Expected behaviour / Requirement to check
http://java.dzone.com/articles/7-popular-unit-test-naming
№7 слайд![Имя теста как спецификация](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img6.jpg)
Содержание слайда: Имя теста как спецификация
ParserTests.TestParse?
ParserTests.Parse_Fails?
ParserTests.Parse_BigNumbers?
ParserTests.Parse_NumbersGreaterThanMaxInt?
ParserTests.Fail_OnNegativeNumbers?
№8 слайд![Имя теста как спецификация](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img7.jpg)
Содержание слайда: Имя теста как спецификация
isAdult_AgeLessThan18_False
ParseInt_should.Fail_OnNonNumber
Stack_should.BeEmpty_AfterCreation
When_MandatoryFieldsAreMissing_Expect_StudentAdmissionToFail
№9 слайд![Антипаттерны Local Hero](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img8.jpg)
Содержание слайда: Антипаттерны
Local Hero
Loudmouth
Free Ride
Over specification
http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/
№10 слайд![Пример спецификации тестами](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img9.jpg)
Содержание слайда: Пример спецификации тестами
№11 слайд![пишем тесты легко ТЕСТ](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img10.jpg)
Содержание слайда: пишем тесты легко
ТЕСТ НАПИСАТЬ – КАК ЧАЙ ПОПИТЬ
№12 слайд![Борьба с дублированием SetUp,](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img11.jpg)
Содержание слайда: Борьба с дублированием
SetUp, TearDown
Comparer, Equal, ToString
Собственные Assert-ы
№13 слайд![Parametrized tests Они же](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img12.jpg)
Содержание слайда: Parametrized tests
Они же Data Driven
№14 слайд![Ограничение по времени Test,](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img13.jpg)
Содержание слайда: Ограничение по времени
[Test, Timeout(1000)]
public void Test()
{
…
}
№15 слайд![Fluent Assertions](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img14.jpg)
Содержание слайда: Fluent Assertions
Assert.AreEqual(expected, actual) или
Assert.AreEqual(actual, expected)?
Assert — корявая семантика
(2+2).Should().Be(4) — лучше!
Неинформативные исключения
«Expected True but was False»
FluentAssertions – доступны через NuGet
№16 слайд![Фишки Resharper Resharper](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img15.jpg)
Содержание слайда: Фишки Resharper
Resharper → Tools → Templates Explorer →
Import → tests-templates.DotSettings
tf — TestFixture
tt — Test
su — SetUp
Ctrl+T+R или Ctrl+U+R
№17 слайд![challenge](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img16.jpg)
Содержание слайда: challenge
№18 слайд![cHALLENGE В проекте Challenge](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img17.jpg)
Содержание слайда: cHALLENGE
В проекте Challenge в файле WordsStatistics_Tests напишите тесты:
WordsStatistics — должен проходить все тесты.
WordStatisticsXXX — некорректные реализации. Должны падать хотя бы на одном тесте.
Запускайте по Ctrl+F5.
Не открывайте файл DoNotOpen!
№19 слайд![cHALLENGE Открываем DoNotOpen!](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img18.jpg)
Содержание слайда: cHALLENGE
Открываем DoNotOpen!
№20 слайд![Разбор CHALLENGE Тесты по](/documents_6/2d3e220ec4f3ee8e9af9fc667f17cbeb/img19.jpg)
Содержание слайда: Разбор CHALLENGE
Тесты по спецификации — это просто
Про взаимодействие разных пунктов спецификации подумать трудно (E3)
Про тесты на производительность вспомнить труднее (998, 999)
Тесты не заменяют Code Review (STA)
Code Review не заменяет тесты (CR)