Burada sorulan soru gibi bir şeyi merak ettiğimde yaptığım şey kaynağa gitmek.
olmak()
expect().toBe()
olarak tanımlanır:
function toBe() {
return {
compare: function(actual, expected) {
return {
pass: actual === expected
};
}
};
}
Testini, ===
olduğu gibi kullanıldığında expect(foo).toBe(true)
, yalnızca foo
gerçekten değere sahipse geçeceği anlamına gelir true
. Gerçek değerler testi geçemez.
toBeTruthy ()
expect().toBeTruthy()
olarak tanımlanır:
function toBeTruthy() {
return {
compare: function(actual) {
return {
pass: !!actual
};
}
};
}
Tip baskı
Bu değerin bir boole zorlaması değeri verirse bir değer doğrudur true
. İşlem , bir boole !!
aktarılan değeri zorlayarak gerçekliği test eder expect
. Aksine şu anda kabul cevabı ne Not ima , == true
olduğu değil doğruluğuna ilişkin doğru bir testi. Gibi komik şeyler alacaksın
> "hello" == true
false
> "" == true
false
> [] == true
false
> [1, 2, 3] == true
false
Oysa !!
verim kullanılırken :
> !!"hello"
true
> !!""
false
> !![1, 2, 3]
true
> !![]
true
(Evet, boş veya değil, bir dizi doğrudur.)
doğru olmak()
expect().toBeTrue()
bir parçası olan Yasemin-matchers (aynı NPM üzerine kayıtlı jasmine-expect
bir sonraki projesi kayıtlı sonra jasmine-matchers
ilk).
expect().toBeTrue()
olarak tanımlanır:
function toBeTrue(actual) {
return actual === true ||
is(actual, 'Boolean') &&
actual.valueOf();
}
İle farkı expect().toBeTrue()
ve expect().toBe(true)
olmasıdır expect().toBeTrue()
o uğraşıyor olmadığını testler Boolean
nesne. expect(new Boolean(true)).toBe(true)
başarısız olurken expect(new Boolean(true)).toBeTrue()
geçerdi. Bu komik şey yüzünden:
> new Boolean(true) === true
false
> new Boolean(true) === false
false
En azından doğrudur:
> !!new Boolean(true)
true
Hangisi ile kullanım için en uygun elem.isDisplayed()
?
Nihayet İletki, Selenyum'a bu isteği iletir. Dokümantasyon ürettiği değer belirten .isDisplayed()
bir karşı giderir olduğu bir sözdür boolean
. Nominal değere alırdım .toBeTrue()
ya da .toBe(true)
. Uygulamanın doğruluk / falsy değerleri döndürdüğü bir durum bulduğumda, bir hata raporu hazırlarım.
.toBe(true)
== olduğunu düşünüyor.toBeTrue()
. toBeTruthy () üzerine sadece doğru olabilir doğrudur ama üzerine 123 , vs "dfgdfg", [1,2,3], ... temeldeif(x==true)
iken, truthy olanif(x===true)
gerçek doğrudur.