, aşağıdaki gibi şeyler yapabilirsiniz:Chai gibi iddia kütüphaneleri bir çağrıya zorlamadan nasıl çalışırlar? <a href="http://chaijs.com/">Chai</a> yılında
expect({}).to.exist;
exist
bir işlev çağrısı değil, ama bu yine de test çerçeveler çalışır. Tersi (expect({}).to.not.exist
) testlerin başarısız olmasına neden olur, ancak yine exist
bir işlev çağrısı değildir.
Bu iddialar beni bir işlevi çağırmadan nasıl çalışır? Aslında, expect({}).to.exist()
söylemeye çalışırsam, exist
bir işlev olmadığı için sınama başarısız olur.
Bu nasıl açıklıyor? – vsync
Ortada neler olduğunu açıklamaksızın oldukça büyük bir sıçrama. Bağlantılı makale, alıcılara aşina değilseniz, bazı şeyleri açıklamaya gerçekten yardımcı oluyor. Kısa sürüm şu ki, yeni (-ish) tarayıcı geliştirmeleri sayesinde, bir özelliği yalnızca ayarlamanın ötesinde kontrol edebilirsiniz (örn. "A.b = 5"). Şimdi, bir özellik için "getter" yöntemini tanımlayabilirsiniz ve herhangi bir kod bu özelliğin değerini okuyamaya çalıştığında (örn. 'Console.log.a (a.b)'), tarayıcı tanımlanan "getter" yöntemini çalıştırır. Bu yöntem daha sonra mantığı tetikleyebilir (örn. Chai'nin onaylama mantığı). Yani bir 'to.exist 'yaptığınız zaman, sizden sonra' '' '' ('' '' '' '' '' '*' '* * * hala bir yöntem (getter yöntemi) çağırıyor olsa bile. – machineghost