TDD - Test Driven Development

TDD - Test Driven Development

Test'le Yürüyen Geliştirme metodolojisine yakından bakış.

033485f7e18823d4ccabb24e5cb4935f?s=128

Uğur Özyılmazel

April 29, 2015
Tweet

Transcript

  1. 3.
  2. 6.

    TDD

  3. 8.
  4. 10.
  5. 15.

    FAYDALARI • BUG FREE geliştirme • Hızlı geliştirme • Dökümantasyon

    yazma zahmetinden kurtarıyor • Sürdürülebilir kod yazma • Uçtan uca uygulamayı görmek • Deployment otomasyonunda kolaylık • Test Coverage
  6. 16.

    DEZAVANTAJLARI • Legacy code'a entegre etmek sorun olabilir • Test'lerin

    maintenance işi ve test süresi • "Quick Edit" mini değişimler için zor • False Positives • Edge Case'leri mutlaka tamamlamak gerek
  7. 18.

    !

  8. 20.

    require 'test/unit' class TestPalindrome < Test::Unit::TestCase def test_palindrome palindromes =

    ["anastas mum satsana", "kuk"] not_palindromes = ["hello", "mello"] palindromes.each{|str| assert palindrome?(str)} not_palindromes.each{|str| assert !palindrome?(str)} end end def palindrome?(string) string.reverse == string end
  9. 21.

    Loaded suite untitled Started . Finished in 0.001015 seconds. 1

    tests, 4 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 985.22 tests/s, 3940.89 assertions/s
  10. 29.

    it "allows setting these responses" do fake_person = double("Person") allow(fake_person).to

    receive_messages(:full_name => "Uğur Özyılmazel") expect(fake_person.full_name).to eq("Uğur Özyılmazel") end it "stubs desired year on a real Time object" do time = Time.new.now allow(time).to receive(:year).and_return(1972) expect(time.year).to eq(1975) end