2013-02-05 35 views
8

Sadece Jasmine kütüphanesini öğreniyorum ve Jasmine'in çok sınırlı sayıda yerleşik iddiaya sahip olduğunu fark ettim. Ayrıca, bu kadar sınırlı bir sayıya rağmen, iddialarının ikisinin de gereksiz olduğu görülmüştür: toBeDefined/toBeUndefined. Başka bir deyişle Yasemin: Neden bir neden olsun ve değil mi?

, bunların her ikisi de aynı kesin bir şey olup olmadığını kontrol etmek gibi görünüyor:

expect(1).toBeDefined(); 
expect(undefined).not.toBeUndefined(); 

bu bir nedeni toBeDefinedtoBeUndefined aynı değildir bir örneğinde olduğu gibi, var mıdır? Yoksa bu, Jasmine’de iki mükemmel eşit yolla çağrılan tek iddia mıdır? (Son iki toEqual olduğu I eksik assert tahmin rağmen)

+3

"toBe ... veya not.toBe ..." - soru budur. Bütün hafta millet buradayım – demoncodemonkey

cevap

6

Bir toBeTruthy ve toBeFalsy veya toBeLessThan ve toBeGreaterThan için aynı tahmin edebiliriz. Sonuçta okunabilirlik ve kullanıcı tercihi gelir.

Size daha eksiksiz bir yanıt vermek için, bu işlevler için çağrılan kodlara göz atmak yararlı olabilir. Yürütülen kod ayrı yollardan geçer (bu nedenle toBeUndefined sadece !toBeDefined değildir). Mantıklı olan tek gerçek cevap okunabilirliktir (ya da can sıkıcı özellik isteklerine cevap vermek). https://github.com/pivotal/jasmine/blob/master/src/core/Matchers.js#L135

İlgili konular