Содержание
- 2. ТЕСТЫ КАК СПЕЦИФИКАЦИЯ
- 3. Будет ли тест понятен ревьюеру? Сможет ли ревьюер быстро убедиться в корректности теста? ДОВЕРИЕ ТЕСТАМ
- 4. class Superman_should { [Test] public void save_kitten_from_tree(){ … superman.Act(); Assert.IsTrue(kitten.IsSaved()); } [Test] public void wear_redBlue_suit(){ …
- 5. Arrange Act Assert ПРАВИЛЬНАЯ СТРУКТУРА ТЕСТА
- 6. Что должно быть в имени теста? Conditions: preconditions, input, state System Under Test: class name, method
- 7. ParserTests.TestParse? ParserTests.Parse_Fails? ParserTests.Parse_BigNumbers? ParserTests.Parse_NumbersGreaterThanMaxInt? ParserTests.Fail_OnNegativeNumbers? ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 8. isAdult_AgeLessThan18_False ParseInt_should.Fail_OnNonNumber Stack_should.BeEmpty_AfterCreation When_MandatoryFieldsAreMissing_Expect_StudentAdmissionToFail ИМЯ ТЕСТА КАК СПЕЦИФИКАЦИЯ
- 9. Local Hero Loudmouth Free Ride Over specification http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/ АНТИПАТТЕРНЫ
- 10. ПРИМЕР СПЕЦИФИКАЦИИ ТЕСТАМИ
- 11. ПИШЕМ ТЕСТЫ ЛЕГКО ТЕСТ НАПИСАТЬ – КАК ЧАЙ ПОПИТЬ
- 12. SetUp, TearDown Comparer, Equal, ToString Собственные Assert-ы БОРЬБА С ДУБЛИРОВАНИЕМ
- 13. Они же Data Driven PARAMETRIZED TESTS
- 14. [Test, Timeout(1000)] public void Test() { … } ОГРАНИЧЕНИЕ ПО ВРЕМЕНИ
- 15. Assert.AreEqual(expected, actual) или Assert.AreEqual(actual, expected)? Assert — корявая семантика (2+2).Should().Be(4) — лучше! Неинформативные исключения «Expected True
- 16. Resharper → Tools → Templates Explorer → Import → tests-templates.DotSettings tf — TestFixture tt — Test
- 17. CHALLENGE
- 18. В проекте Challenge в файле WordsStatistics_Tests напишите тесты: WordsStatistics — должен проходить все тесты. WordStatisticsXXX —
- 19. Открываем DoNotOpen! CHALLENGE
- 21. Скачать презентацию