Thread overview
Unittestlere özel olarak private üye ve fonksiyonlara ulaşma,
Jul 02, 2018
kerdemdemir
Jul 02, 2018
kerdemdemir
July 02, 2018

Şunun gibi birşeyler yapmam gerekiyor :

       auto client = new BinanceClient();
	assert (client.binanceWrapper.socketDataList.keys.empty );
	assert (client.binanceWrapper.socketOrderBookHelperMap.keys.empty );

Fakat binanceWrapper denen üye elemanın socketDataList üyesi private. Aynı sorunu yaşadığım fonksiyonlarda var.

Şimdi bu unittestler yüzünden bütün bunları public'e mi çekmem gerek.

Veya aynı mödül ismimi kullansam(istekli değilim bunda iş çıkaracak) ne yapsam .

Erdem.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2018

Alıntı:

>

Kod örnekleri için "Kod"a tıklayabilirsin.

Abi ben bunu anlamadım . (Düzeltme: Biraz geç anlıyorum 1 saat sonra anladım ve düzelttim. )

Alıntı:

>

Tartışmaya açık bir konu olarak: private'ın bugüne kadar yalnızca zararını gördüm.

Bende Getter ve Setter yazmayı bazen gereksiz buluyorum. Hatta burdada sorunumu public getter'lar ile çözebilirdim ama bu şekilde getter'lar bana yapmacık geliyor. Fakat kullanıcıya açık olan fonksiyonları sınırlamazsak(yani herşeyi public olarak kullanırsak) kullanıcının kafası çok karışır gibi geliyor. Acaba sen private kullanmadan bu sorunun önüne nasıl geçiriyorsun yani sınıfın kullanıcılarına temiz bir arayüz nasıl sağlıyorsun .

Erdem

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2018
  • Kod örnekleri için "Kod"a tıklayabilirsin.

  • Tartışmaya açık bir konu olarak: private'ın bugüne kadar yalnızca zararını gördüm. :)

  • Birim testleri yalnızca public arayüzü denetlemeli. private olanlar o testler sırasında zaten denetlenir.

  • private olanların denetlenmeleri gerekiyorsa unittest blokları o modülde bulunmalıdır.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 02, 2018

private kullanıyorum tabii ki. Buna rağmen, Çalıştığım hemen her yerde en az bir kere iyi niyetle private yapılmış bilgiye gerek duyuldu.

Bence en iyisi, sınıfın nasıl kullanılacağını belgelemek özel olduğu düşünülen üyeleri bir biçimde (belki de isimlerini _ karakteri ile başlatarak filan) belirlemek. Ben de eğer public arayüzün dışına çıkarsam ileride başımın ağrıyacağını biliyorum demektir. Özel üye bir sonraki sürümde yok olabilir, ismi değişebilir, vs. O zaman ben de kodumu değiştirmek zorunda kalırım.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]