This media is not supported in your browser
VIEW IN TELEGRAM
🔥5👍2
Shu React component @JonliChatBot-da online userlar sonini ko'rsatishga ishlatiladi.
Qanday qilib uni test qilishimiz mumkin?
Birinchi bo'lib hayolga kelgan narsa esa
Lekin bizga farqi bo'lmaslik kerak component useEmitOncedan foydalanvottimi, to'g'ridan to'g'ri `socket.emit`dan foydalanvottimi yoki boshqa usul bilan mi. Bu esa "implementation detail".
Agar biz implementationga testlarimizani bog'lab qo'ysak – componentning implementationi update qilnganingizda testingiz ham buziladi.
Bu yerda savol paydo bo'ladi: tetsingiz o'zi to'g'ri narsani test qilvottimi yoki shunchaki funksiyalar call qilinishini test qilvottimi?
Undan ko'ra componentning natijasini test qilishimiz kerak. Buning uchun MSW yordamida WebSocket messagelarni intercept qilishimiz mumkin va funksiya darajada mock qilishi o'rniga – WebSocket protocol darajada mock qilishimiz mumkin.
Va React Testing Library yordamida role-based testing yozamiz. React Testing Librarydan foydalanish ham implementationi test qilishdan bizni uzoqlashtiradi.
Shunaqa usul yordamida, keyinchalik socket.io-dan boshqa narsaga o'tsam – testlar buzilmaydi, chunki implementation test qilishi o'rniga, testlar natijani test qiladi.
P.S.: albatta MSW bilan ishlash mocklar bilan solishtirganda ancha qiyinroq bo'lishi mumkin. Boshida ba'zi logikalarni alohida hook/funksiyaga chiqarib, uni test qilib, qolgan uni ishlatadigan qismlarni shunchaki spy yoki mock qilishimiz mumkin.
Qanday qilib uni test qilishimiz mumkin?
Birinchi bo'lib hayolga kelgan narsa esa
useEmitOnce
vs useSocketValue
mock qilish va render natijasini tekshirish.Lekin bizga farqi bo'lmaslik kerak component useEmitOncedan foydalanvottimi, to'g'ridan to'g'ri `socket.emit`dan foydalanvottimi yoki boshqa usul bilan mi. Bu esa "implementation detail".
Agar biz implementationga testlarimizani bog'lab qo'ysak – componentning implementationi update qilnganingizda testingiz ham buziladi.
Bu yerda savol paydo bo'ladi: tetsingiz o'zi to'g'ri narsani test qilvottimi yoki shunchaki funksiyalar call qilinishini test qilvottimi?
Undan ko'ra componentning natijasini test qilishimiz kerak. Buning uchun MSW yordamida WebSocket messagelarni intercept qilishimiz mumkin va funksiya darajada mock qilishi o'rniga – WebSocket protocol darajada mock qilishimiz mumkin.
Va React Testing Library yordamida role-based testing yozamiz. React Testing Librarydan foydalanish ham implementationi test qilishdan bizni uzoqlashtiradi.
Shunaqa usul yordamida, keyinchalik socket.io-dan boshqa narsaga o'tsam – testlar buzilmaydi, chunki implementation test qilishi o'rniga, testlar natijani test qiladi.
P.S.: albatta MSW bilan ishlash mocklar bilan solishtirganda ancha qiyinroq bo'lishi mumkin. Boshida ba'zi logikalarni alohida hook/funksiyaga chiqarib, uni test qilib, qolgan uni ishlatadigan qismlarni shunchaki spy yoki mock qilishimiz mumkin.
🔥4❤1👍1
it('should render', () => {
render(<App />)
let main = screen.getByRole('main')
expect(main).toBeInTheDocument()
})
This media is not supported in your browser
VIEW IN TELEGRAM
😁18 9 2
Anonymous Poll
70%
VSCode, IntelliJ ichidagi terminal
19%
Alohida terminal (iTerm, Ghostty, ...)
11%
Boshqa javob
19:00da jonli efir @SeoulDev kanalda boshlanadi! 🔴
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7 5🔥1🎉1
Dasturchilar, man ishdan ketdim...
Endi yangi yildan keyin qaytaman
🎉29😁16👍10 9
Yangi yil bilan, bu yil ko’proq ship qilamiz 🚀🛳️
😁33👍12🔥5❤3⚡2
Agar
https://x.com/ramzcoder/status/1875213663642206309
<footer>
da hozirgi yilni ko'rsatmoqchi bo'lsangiz, shunchaki getfullyear.com dan foydalaninghttps://x.com/ramzcoder/status/1875213663642206309
⚡30😁19👍10 2
Kecha birinchi marta umrimda Git saytida dokumentatsiyani chuqur o’rganmoqchi edim…
Mayli, taqdir emas ekan
Mayli, taqdir emas ekan
😁62❤3👍3🔥2
Ramziddin — Dasturlash haqida
Test yozish? Man kod yaxshi ishlashini shunchaki sezaman
Git daraxtni yoniga borib hamma buglarni haqida aytib bering
Payme, Click yoki shunaqa kabi to'lov tizim kodingizga ulaganmisiz? Tajriba qanday bo'ldi? Qiyin yoki oson?
Bitta OSS solution kerak shu hamma narsalarni doim qayta implement qilmaslik uchun
Bitta OSS solution kerak shu hamma narsalarni doim qayta implement qilmaslik uchun
👍24❤3
Yarim oydan beri Instagramni ishlatmaganimdan keyin bugun qayta o’rnatdim.
Bu esa birinchi bo’lib ko’rgan kommentim.
Instagramni qayta o’chiraman🙃
Bu esa birinchi bo’lib ko’rgan kommentim.
Instagramni qayta o’chiraman
Please open Telegram to view this post
VIEW IN TELEGRAM
😁53🔥7👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
😁88🔥7👍6❤1
Keyingi safar hamkasbingiz sizdan u yasagan <form>-ni sinab ko'rishingizni so'raganda, har bir inputga [object Object] kiriting 🍸
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20⚡18👍1🔥1
Ramziddin — Dasturlash haqida
BREAKING NEWS: Tramp "useEffect"dan har bir foydalanish uchun 25% tarif joriy qildi
Reactni o'rganayotgan barcha backend dasturchilar backendga qayta yuborilmoqda
😁30⚡5 3🎉1