<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unit test nasıl yazılır? &#8211; Kemal Burak Yılmaz</title>
	<atom:link href="http://www.kemalburakyilmaz.com/tag/unit-test-nasil-yazilir/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kemalburakyilmaz.com</link>
	<description>Unutma Unutturma</description>
	<lastBuildDate>
	Mon, 04 Jan 2021 11:10:36 +0000	</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.8</generator>
	<item>
		<title>Unit Test Nedir? Neden Yazılır?</title>
		<link>http://www.kemalburakyilmaz.com/unit-test-nedir-neden-yazilir/</link>
				<pubDate>Wed, 25 Sep 2019 08:39:06 +0000</pubDate>
		<dc:creator><![CDATA[Burak Yılmaz]]></dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[c# test]]></category>
		<category><![CDATA[unit test]]></category>
		<category><![CDATA[unit test nasıl yazılır?]]></category>
		<category><![CDATA[unit test nedir?]]></category>

		<guid isPermaLink="false">http://www.kemalburakyilmaz.com/?p=727</guid>
				<description><![CDATA[Yazılım dünyası için eski benim için yeni bir konu olan unit test konusuna hızlıca bir göz atacağız. Yeni şirketimde yapılan her iş için unit test yazılıyor, bu da demek ki oluyor ki artık aktif olarak unit test yazacağım. Ben de her zaman yaptığım gibi yeni bir konuyu öğrenirken, burada da paylaşayım dedim 🙂 Unit test(birim [&#8230;]]]></description>
								<content:encoded><![CDATA[
<p>Yazılım dünyası için eski benim için yeni bir konu olan unit test konusuna hızlıca bir göz atacağız.  Yeni şirketimde yapılan her iş için unit test yazılıyor, bu da demek ki oluyor ki artık aktif olarak unit test yazacağım. Ben de her zaman yaptığım gibi yeni bir konuyu öğrenirken, burada da paylaşayım dedim <img src="https://s.w.org/images/core/emoji/11.2.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Unit test(birim test), adından anlayacağımız üzere test edilebilen en küçük birimi test eden kod blogudur. Temelde yaptığı; kodun veya sınıfın, belli girdiler ile doğru çalışıp, istenilen sonucu üretip üretmediğini kontrol etmektir. Ufak ufak parçaları test ederek, bütün bir yazılımın en azından çalıştığını görebiliyoruz. </p>



<p>Peki unit testler ile akış içerisindeki tüm bugları bulabilir miyiz? Hayır! Birim testler yalnızca o birimi o fonksiyonu test eder. <br> Unit testler yazılım testlerinin  ilk adımıdır. Komple akışı test etmek için başka testler(integration test, api test vs) yapmak gerekir.</p>



<h2>Neden yazılır?</h2>



<ul><li>Başka developerlar bizim yazdığımız kodları nasıl kullanacaklarını unit testlere bakarak daha iyi anlayabilir.</li><li> Yazdığımız hiç bir kod sonsuza kadar aynı kalmaz. Elbet bir gün refactor edilecek veya eklemeler yapılacaktır. İşte kodun burasını değiştirirsem ne olur? Nereleri patlatırım vs gibi kafamızı kurcalayan sorulardan bizi kurtarır. Kodumuzu yazdıktan sonra unit testleri çalıştırmamız yeterli olacaktır. Bize patlayan çatlayan her yeri gösterir <img src="https://s.w.org/images/core/emoji/11.2.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li><li>Bizleri kaliteli kod yazmaya teşvik eder. Düzgün birim testler yazabilmemiz için, test edeceğimiz sınıfın bileşenleri ile gevşek bağlı(loosely coupled) olması gerekir. Böylelikle biz de testlerimizi yazarken mocking yapabiliriz. Eğer sıkı sıkıya bağlı(tightly coupled) olsaydı; ki bu yazılımda istenmeyen bir durumdur, mock object kullanamazdık. Yazılım bileşenlerini birbirlerine gevşek bağlamak için Dependency Injection yöntemini kullanabiliri</li></ul>



<h2>Nasıl yazılmalıdır?</h2>



<ul><li><strong>Unit testler, kodu yazan developer tarafından yazılmalıdır.</strong></li><li><strong>Okunaklı olmalıdır.</strong></li><li><strong>Hızlı çalışmalıdır.</strong></li><li><strong>Test yazılan birim, bileşenlerinden izole edilmelidir.</strong></li><li><strong>Bağımlılıklar değil, yalnızca o birim test edilmelidir.</strong></li><li><strong>Yazılan her test yalnız bir senaryoyu test etmelidir.</strong></li><li><strong>Yazılan testler tak başına çalışabilmeli, birbirini hiç bir şekilde etkilememelidir.</strong></li><li><strong>Unit test yazarken isimlendirme çok önemlidir.Test isimleri açıklayıcı olmalıdır. Uzun olabilir. <em>MethodName_StateUnderTest_ExpectedBehavior&nbsp;</em> şeklindeki isimlerdirme standartını kullanabiliriz.</strong></li><li><strong>Test başarısız olduğunda anlaşılabilir bir data dönmelidir.</strong></li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img src="http://www.kemalburakyilmaz.com/wp-content/uploads/2019/09/unittest.gif" alt="" class="wp-image-730" /></figure></div>
]]></content:encoded>
										</item>
	</channel>
</rss>
