Eğer bu uygun bir test durumu düşünür müsünüz?

4 Cevap php

Benim ilk PHPUnit test olguların biri hakkında bazı geribildirim almak istiyorum.

Testlerin konu bir PHP uygulaması basit bir yapılandırma sınıftır. Bu yapılandırma ayarları oluşturmak, saklamak ve almak için kullanılır.

Ayarlar sınıfı içinde bir dizi saklanır. Her ayar aşağıdaki özelliklere sahiptir:

  • anahtar (örneğin, frontend:menu:bgcolor)

  • tipi (bir string, int, hexcolor, boolean)

  • değer (karışık)

  • salt okunur (boolean)

Her ayar ilk created olmak zorundadır. Yaratılış, her ayar türü, (false varsayılan), sadece bayrak okumak ve varsayılan bir değer atanır.

Class methods:

public function create($key, $value, $type = "string", $read_only = false) 
public function set($key, $value)   
public function get($key)  

The tests I am running:

(Tamam) ve (başarısız) testin beklenen sonuçları.

  • Bir başlangıç ​​değeri ile string test tipi adında bir ayar oluşturmak xyz (Tamam)

  • Ayarı test yüklemek ve beklemek dönüş değeri xyz (Tamam)

  • test (Tamam) abc için ayarını

  • Ayarı test yüklemek ve beklemek dönüş değeri abc (Tamam)

  • Ayarı yüklemek töst (başarısız, anahtar yok)

  • Tipi string ile test_read_only adında bir ayar, bir başlangıç ​​değeri Mary had a little lamb ve ayarlamak true salt okunur bayrağı (Tamam) oluşturma

  • test_read_only için Peter had a big lamb adında ayarını (başarısız, anahtarı sadece okunur)

  • test_read_only adında ayarı yüklemek ve beklemek dönüş değeri Mary had a little lamb (Tamam)

  • Tipi int ile test_integer adında bir ayar, bir başlangıç ​​değeri 5 ve ayarlamak true salt okunur bayrağı (Tamam) oluşturma

  • 5.23049505906 türünde int, ve bir başlangıç ​​değeri ile test_integer_second adında bir ayar oluşturmak (başarısız, başlangıç ​​değeri yanlış tipi vardır)

  • Tipi sdasfäödsf#ädfsaö ile test_weird adında bir ayar oluşturmak (başarısız yazın bulunamadı)

  • test_weird (anahtar tanımlı değil, başarısız) için Peter had a little lamb adında ayarını

Questions:

  • Bu test durumda size mantıklı geliyor mu?
  • Bu tam bir test durumu düşünür müsünüz?
  • Eğer farklı veya ek ne yapardınız?

Update: şimdiye kadar uygulayacağını geldi Öneriler:

  • Dize uzunluğu çekler
  • Geri kalan veri türleri boolean ve hexcolor ile ilgili testler
  • Anahtar adlandırma testler şu anda gerekli değil ama gelecekte olacaktır.

4 Cevap

I) geçerli ve geçersiz değerleri ile eksik tipleri (boolean ve HexColor) için testi eklersiniz.

Eğer tuşları adlandırma kuralı bazı sınırlama varsa I dont 'örneğin bir tuşa atayabilirsiniz geçerli ve geçerli olmayan isimler var, biliyor musun?

Another test you should absolutely add, to me: What happen if you create a key two times? With different types?

Bana, iyi yapıyorsun arada

Onlar mantıklı olduğu gibi HexColor veya boolean değerler için herhangi bir test durumları yok çünkü test durumlarda, ben onları tam düşünün olmaz. Ayrıca, dize değerleri uzunluğu sınırı çeşit koymak isteyebilirsiniz.

your test cover pretty much all that can be done, I think it's fairly good. unit test have not to be exhaustive (it's rarely possible)

Ben sadece böyle bir şey eklemek istiyorum:

  • "Abc" için ayar test_integer Set (başarısız, yanlış tipi)

ve HexColor ve boolean tipi doğrulama için belki bazı testler

Varolan bir anahtar türünü değiştirmek için testler eklersiniz. Ayrıca, mevcut olmayan-readonly anahtar için, salt okunur değiştirmek, ve ile ve türünü değiştirmeden de onu yapmak.

Ayrıca, int türü bir dizi var mı? php platformu tarafından değişebilir. şamandıra int gibi bakabilirsiniz.