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 foogerç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 , == trueolduğ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-expectbir sonraki projesi kayıtlı sonra jasmine-matchersilk).
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 Booleannesne. 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.