Skip to content

Commit c46de1c

Browse files
committed
fix typo
1 parent 45d606f commit c46de1c

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

1-js/03-code-quality/05-testing-mocha/article.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Bundan sonraki görevlerde otomatik test kullanılacak.
44

55
Otomatik test, aslında, bir geliştiricinin asgari eğitiminin bir parçasıdır.
66

7-
## Neden teste ihtiyac var?
7+
## Neden teste ihtiyaç var?
88

99
Fonksiyon yazıldığında, genelde ne olması gerektiğini düşünürüz: hangi parametre hangi sonucu verecek gibi.
1010

@@ -14,26 +14,26 @@ Eğer bir şey yanlışsa kod değiştirilir ve tekrar çalıştırılır, ta ki
1414

1515
Fakat bunları tekrar tekrar çalıştırmak iyi bir yöntem değildir.
1616

17-
**Bu tekrarları yaparken, bir şeyleri atlamak çokça karşılaşılan bir durumdur**
17+
**Bu tekrarları yaparken, bir şeyleri atlamak çokça karşılaşılan bir durumdur.**
1818

1919
Örneğin, `f` diye bir fonksiyon yazılırken. Test: `f(1)` çalışır fakat `f(2)` çalışmaz. Kod düzeltildi, şimdi `f(2)`çalışmakta. Tamamlandı mı? Fakat `f(1)` tekrar test edilmedi. Bu bir hataya neden olabilir.
2020

2121
Bu çok tipiktir. Bir şey geliştirirken çoğu zaman muhtemel olan durumları aklımızda tutarız. Fakat programcıların bu durumların tamamını aklında tutması beklenemez. Bundan dolayı bir tanesini düzeltirken diğerini kırmak çokça yaşanılan bir durumdur.
2222

2323

24-
**Otomatik testlerin koddan ayrı yazılması demektir. Kolayca çalıştırılır ve tüm durumları kontrol edebilir**
24+
**Otomatik testlerin koddan ayrı yazılması demektir. Kolayca çalıştırılır ve tüm durumları kontrol edebilir.**
2525

26-
## Davranışa Yönelik Geliştirme - Behaviour Driven Development(BDD)
26+
## Davranışa Yönelik Geliştirme - Behaviour Driven Development (BDD)
2727

2828
Diyelim ki [Davranışa Yönelik Geliştirme](http://en.wikipedia.org/wiki/Behavior-driven_development) tekniğini kullandınız, BDD sadece test için değil, bundan daha fazlasıdır.
2929

30-
**BDD üç şeyin içiçe bulunmasıdır. Bunlar: test,dökümantasyon ve örneklerdir.**
30+
**BDD üç şeyin iç içe bulunmasıdır. Bunlar: test, dökümantasyon ve örneklerdir.**
3131

3232
Yeteri kadar konuştuk. Şimdi örneklere geçebiliriz.
3333

3434
## Üs fonksiyonunun geliştirilmesi: Özellikler
3535

36-
Diyelimki `us(x,n)` adında bir fonksiyon yazmak isteyelim. Bu `x`i üssü olan `n` kadar artırsın. Ayrıca `n≥0` olduğunu varsayalım.
36+
Diyelim ki `us(x,n)` adında bir fonksiyon yazmak isteyelim. Bu `x`i üssü olan `n` kadar artırsın. Ayrıca `n≥0` olduğunu varsayalım.
3737

3838
Bu görev sadece örnektir: Bunun yaptığını yapan `**` operatörü vardır ve aynı işi yapar. Burada bizim konsantre olacağımız olay bunun geliştirilmesi sürecidir. Bu daha karmaşık görevlerde de aynı şekilde kullanılabilir.
3939

@@ -61,9 +61,9 @@ Bu özelliğin 3 ana bölümü vardır:
6161

6262

6363
`assert.equal(value1, value2)`
64-
: `it` bloğunun içindeki ko eğer doğru ise hatasız döner.
64+
: `it` bloğunun içindeki kod eğer doğru ise hatasız döner.
6565

66-
`assert*` fonksiyonu `us`'ün beklendiği gibi çalışıp çalışmadığını kontrol eder. Burada `assert.equal`'ı kullanılmaktadır. Argümanları karşılaştırarak eşitlik olmadığı durumda hata verir. Burada `us(2,3)`, `8` e eşit mi diye bakılır
66+
`assert*` fonksiyonu `us`'ün beklendiği gibi çalışıp çalışmadığını kontrol eder. Burada `assert.equal`'ı kullanılmaktadır. Argümanları karşılaştırarak eşitlik olmadığı durumda hata verir. Burada `us(2,3)`, `8` e eşit mi diye bakılır.
6767

6868
İleriki dönemlerde farklı karşılaştırmaları göreceksiniz.
6969

@@ -74,15 +74,15 @@ Genelde akış şu şekildedir:
7474

7575
1. Başlangıçta en basit fonksiyonalite test edilir.
7676
2. Bunun uygulaması yapılmıştır.
77-
3. Çalışıp çalışmadığını [Mocha](http://mochajs.org/) kullanarak yapabilirsiniz. Hata alındığında kod tekrar düzeltilmeli, taki her şey düzgün şekilde çalışana kadar.
78-
4. Şu anda çalışan ve uygulaması yapılmmış bir testiniz var.
77+
3. Çalışıp çalışmadığını [Mocha](http://mochajs.org/) kullanarak yapabilirsiniz. Hata alındığında kod tekrar düzeltilmeli, ta ki her şey düzgün şekilde çalışana kadar.
78+
4. Şu anda çalışan ve uygulaması yapılmış bir testiniz var.
7979
5. Daha fazla koşul ekleyerek bunların uygulamasını yazdığınızda testlerde hata almaya başlarsınız.
8080
6. Üçüncü adıma dönüp bu testlerin hatalarını düzeltene kadar hata almaya devam edersiniz.
8181
7. 3-6 arasını düzelterek tüm fonksiyonalite hazır oluncaya kadar devam edin.
8282

8383
Öyleyse geliştirme süreklilik tekrar bu işlemler üzerinden geçerek devam eder. *Özellikleri* yazıldıktan sonra, bunların uygulaması yapılır, sonra daha fazla test yazılır ve çalıştığına emin olunur.
8484

85-
Bizim durumumuzda ilk adım tamamlandı. Başlangıçta `us` için özelliği tanımladık. Şimdi bunun uygulamasını yapmaya geldi. Fakat öncesinde bir defa kodu çalıştıralım bakalım testler uygulamasını yazmadan çalışacak mı? ( hepsinin hata vermesi lazım )
85+
Bizim durumumuzda ilk adım tamamlandı. Başlangıçta `us` için özelliği tanımladık. Şimdi bunun uygulamasını yapmaya geldi. Fakat öncesinde bir defa kodu çalıştıralım bakalım testler uygulamasını yazmadan çalışacak mı? (hepsinin hata vermesi lazım)
8686

8787

8888
## Özelliklerin uygulaması
@@ -93,7 +93,7 @@ Test için aşağıdaki JavaScript kütüphaneleri kullanılacaktır:
9393
- [Chai](http://chaijs.com) -- birçok assertion kullanmamıza neden olur. Assertion ( sav, iddia ) şimdilik sadece `assert.equal` kullanılacak.
9494
- [Sinon](http://sinonjs.org/) -- var olan fonksiyonların taklidini yapabilir. Buna daha sonra ihtiyaç duyulacak.
9595

96-
Bu kütüphaneler hem tarayıcı, hemde sunucu tabanlı testlerde kullanılabilir. Burada tarayıcı versiyonunu kullanılacaktır.
96+
Bu kütüphaneler hem tarayıcı, hem de sunucu tabanlı testlerde kullanılabilir. Burada tarayıcı versiyonunu kullanılacaktır.
9797

9898
HTML sayfasının tamamı bu çatılar ve `us` özellikleri ile:
9999

@@ -106,7 +106,7 @@ Bu sayfa dört bölüme ayrılabilir:
106106
4. `<div id="mocha">` HTML elementi Mocha'nın çıktısını vermek için kullanılacaktır.
107107
5. Testler `mocha.run()` komutuyla başlar.
108108

109-
Sonuc:
109+
Sonuç:
110110

111111
[iframe height=250 src="pow-1" border=1 edit]
112112

@@ -178,7 +178,7 @@ Sonuç:
178178

179179
[iframe height=250 src="pow-2" edit border="1"]
180180

181-
Beklendiği üzre ikinci test başarısız oldu. Bizim fonksiyonumuz her zaman `8` dönderiyordu, ikincide ise `assert` `27` cevaını bekledi.
181+
Beklendiği üzere ikinci test başarısız oldu. Bizim fonksiyonumuz her zaman `8` döndürüyordu, ikincide ise `assert` `27` cevabını bekledi.
182182

183183

184184
## Test uygulamalarını geliştirme.
@@ -196,7 +196,7 @@ function us(x, n) {
196196
return sonuc;
197197
}
198198
```
199-
Fonksiyonun doğruluğunu kontrol etme amaçlı, `it` bloğunu otomatik olarak `for` dönügüsü kontrol etsin.
199+
Fonksiyonun doğruluğunu kontrol etme amaçlı, `it` bloğunu otomatik olarak `for` döngüsü kontrol etsin.
200200

201201
```js
202202
describe("us", function() {
@@ -255,7 +255,7 @@ describe("us", function() {
255255

256256
[iframe height=250 src="pow-4" edit border="1"]
257257

258-
İleride daha fazla `it` ve `describe` eklendiğinde kendine air yardımcı fonksiyonlar da yazabilirsiniz. Bu fonksiyonlar `testEt`e erişemezler.
258+
İleride daha fazla `it` ve `describe` eklendiğinde kendine ait yardımcı fonksiyonlar da yazabilirsiniz. Bu fonksiyonlar `testEt`e erişemezler.
259259

260260

261261
````smart header="`before/after` and `beforeEach/afterEach`"
@@ -293,7 +293,7 @@ Testler bitti – tüm testlerden sonra (after)
293293
294294
[edit src="beforeafter" title="Örneği sandbox'ta çalıştır"]
295295
296-
Genelde `beforeEach/afterEach` (`before/each`) başlangıçta ösellikleri ayarlama, sayacı sıfırlama veya testler arasında bir şey yapma gibi aksiyonları gerçekleştirir.
296+
Genelde `beforeEach/afterEach` (`before/each`) başlangıçta özellikleri ayarlama, sayacı sıfırlama veya testler arasında bir şey yapma gibi aksiyonları gerçekleştirir.
297297
````
298298
299299
## Özellikleri geliştirme
@@ -302,7 +302,7 @@ Genelde `beforeEach/afterEach` (`before/each`) başlangıçta ösellikleri ayarl
302302
303303
Belirtildiği üzere `us(x,y)` üs olarak sadece pozitif değerler alabilir.
304304
305-
Matematiksel hata için JavaScript fonksiyonları genelde `NaN` ( not a number ) dönderiyor. `n` in yanlış değerleri için `NaN` döndürülebilir.
305+
Matematiksel hata için JavaScript fonksiyonları genelde `NaN` (Not a Number) döndürüyor. `n` in yanlış değerleri için `NaN` döndürülebilir.
306306
307307
Öncelikle bu davranışı özelliklere ekleyin:
308308
@@ -330,7 +330,7 @@ Testin sonucu:
330330

331331
[iframe height=530 src="pow-nan" edit border="1"]
332332

333-
Yeni eklenen testler başarısız oldu çünkü daha uygulamasını yapılmadı. BDD( Behaviour Driven Development) bu şekilde yapılır. Önce başarısız testler yazılır sonra bu testlerin uygulamaları yazılır.
333+
Yeni eklenen testler başarısız oldu çünkü daha uygulamasını yapılmadı. BDD (Behaviour Driven Development) bu şekilde yapılır. Önce başarısız testler yazılır sonra bu testlerin uygulamaları yazılır.
334334

335335
```smart header="Diğer iddialar(assertion)"
336336
@@ -347,7 +347,7 @@ Chai içinde daha farklı iddialar da bulunmaktadır bunlardan bazıları:
347347
- `assert.isFalse(value)` -- `value === false` değerini kontrol eder.
348348
- ...bu listenin tamamına [dökümantasyondan](http://chaijs.com/api/assert/) bakabilirsiniz.
349349
```
350-
Demekki `us` fonksiyonuna bazı yeni kodlar eklemeniz lazım:
350+
Demek ki `us` fonksiyonuna bazı yeni kodlar eklemeniz lazım:
351351

352352
```js
353353
function us(x, n) {
@@ -372,7 +372,7 @@ function us(x, n) {
372372
[edit src="pow-full" title="Open the full final example in the sandbox."]
373373

374374
## Özet
375-
BDD'de önce özellikler yazılır sonra bunların uygulamaları yapılır. Sonunda hem özellikler hemde çalışan kod yazılmış olur.
375+
BDD'de önce özellikler yazılır sonra bunların uygulamaları yapılır. Sonunda hem özellikler hem de çalışan kod yazılmış olur.
376376

377377
Özellikler üç farklı şekilde kullanılabilir:
378378

@@ -390,17 +390,17 @@ Testler olmazsa geliştiriciler iki şekilde devam edebilir:
390390
1. Değişiklik ne olursa olsun yapılır. Sonrasında kullanıcılar bug bulur ve bunları bize bildirir. Tabi bu sizin için normal bir şeyse eğer.
391391
2. Veya geliştiriciler bu fonksiyona dokunmaya çekinir, eğer gerçekten önemli bir fonksiyonsa bunun altından kalkılamayabilir. Bundan dolayı fonksiyonlara dokunmaya dokunmaya birçok fonksiyon yazılır ve herkes kendine ait kodu kullanır.
392392

393-
**Otomatik test edilmiş kod ise bunun tam anlamıyla zıttıdır**
393+
**Otomatik test edilmiş kod ise bunun tam anlamıyla zıddıdır.**
394394

395395
Eğer projede testler yazılmış olsaydı, böyle problemler olmazdı. Testleri çalıştırır ve yaptığınız değişikliklerin herhangi bir yeri etkileyip etkilemediğini anında görebilirdiniz.
396396

397-
**Ayrıca iyi test edilmiş kodun mimarisi daha iyidir**
397+
**Ayrıca iyi test edilmiş kodun mimarisi daha iyidir.**
398398

399399
Çünkü değiştirmek ve geliştirmek daha kolaydır. Sadece bu değil
400400

401401
Kod öyle bir organize edilmelidir ki her fonksiyonun açık bir şekilde ne yapacağı belli olmalıdır. Hangi değerleri alacağı hangi değerler döneceği. Bu başlangıçtan itibaren iyi bir mimariye sahip olduğunun kanıtıdır.
402402

403-
Gerçek hayatta bu bazen kolay olmayabilir. Bazen gerçekten özellikleri yazmak gerçek kodu yazmadan önce çok zor olabilir. Çünkü fonksiyonun nasıl davranacağı tam olarak kesitirilemeyebilir. Fakat genel olarak bakılacak olursa test yazma geliştirmeyi hızlandırır ve daha istikrarlı kılar.
403+
Gerçek hayatta bu bazen kolay olmayabilir. Bazen gerçekten özellikleri yazmak gerçek kodu yazmadan önce çok zor olabilir. Çünkü fonksiyonun nasıl davranacağı tam olarak kestirilemeyebilir. Fakat genel olarak bakılacak olursa test yazma geliştirmeyi hızlandırır ve daha istikrarlı kılar.
404404

405405
## Sırada ne var?
406406

0 commit comments

Comments
 (0)