New in Symfony 8.2: HTTP Recorder (Symfony Blog)
Symfony 8.2 lets your tests record real HTTP calls once and replay them in later runs, so they stay fast and don't depend on external APIs.
Tin lập trình mới nhất về phpunit, tóm tắt tiếng Việt bằng AI.
Symfony 8.2 lets your tests record real HTTP calls once and replay them in later runs, so they stay fast and don't depend on external APIs.
Khóa học video Mastering Laravel Testing của Joel Clermont tập trung vào testing trong Laravel, bao gồm feature tests, mocks, policies và form validation. Khóa học có giá ưu đãi trong thời gian presale và sẽ kết thúc vào ngày 20 tháng 11. Đây là tài liệu hữu ích cho lập trình viên Laravel muốn nâng cao kỹ năng testing và viết code chất lượng hơn. Bài gốc cung cấp hướng dẫn thực hành cụ thể với các khái niệm testing quan trọng. Nếu bạn đang làm việc với Laravel và muốn cải thiện kỹ năng testing, khóa học này đáng để xem.
Khóa video Mastering Laravel Testing giúp lập trình viên nắm vững các kỹ thuật kiểm thử quan trọng như feature tests, mocks, policies và form validation.
Trong khi quản lý dependency tree, PHP có cơ chế một tên, một định nghĩa, một phiên bản cho mỗi process. Điều này giải thích tại sao dependency tree của PHP thường nhỏ hơn các ngôn ngữ khác. Andrew Nesbitt nhấn mạnh sự khác biệt này với npm resolver cho phép nhiều phiên bản cùng tồn tại. Kết quả là PHAR của PHPUnit phải đổi tên các dependencies để tránh xung đột. Điều này cho thấy cách thiết kế runtime ảnh hưởng trực tiếp đến quản lý dependency.
Bài viết giải thích lý do cây dependency nhỏ trong PHP nhờ quy tắc một phiên bản cho mỗi quy trình, giúp lập trình viên hiểu cách quản lý dependency hiệu quả hơn.
PHPUnit 13 adds sealed mocks. I'd split stubs from mocks and run Infection on changed code only in the pull request.
When an agent writes both the tests and the implementation, it checks its own interpretation against its own interpretation. Why I do not leave the red phase to an agent, how tests keep us in the loop when the machine writes the code, and what a team loses when all it does is sign off generated code.
A few lines in PHPUnit's Test Runner had no effect after April 2023. For three and a half years I reformatted them, renamed things in them and hardened them for static analysis anyway. PHPStan 2.3 found them, and even then only some of them.
Việc nâng cấp PHPUnit có thể trở nên dễ dàng nếu bạn cập nhật định kỳ vào tháng Hai, có thể hoàn thành trong buổi chiều. Tuy nhiên, nếu để ba phiên bản lớn bị tụt hậu, bạn sẽ cần một dự án riêng để thực hiện việc nâng cấp. Sự khác biệt không nằm ở quá trình nâng cấp mà ở năm chuẩn bị trước đó, bao gồm thứ tự làm việc và danh sách deprecated nào của PHPUnit bạn đã theo dõi. Bài viết nhấn mạnh tầm quan trọng của việc duy trì hệ thống test sạch sẽ và thường xuyên cập nhật để tránh các thay đổi lớn gây khó khăn. Lập trình viên nên chú ý đến hai danh sách deprecation của PHPUnit và sắp xếp công việc hợp lý để quá trình nâng cấp trở nên đơn giản.
Bài viết này giúp bạn hiểu cách thực hiện nâng cấp PHPUnit một cách hiệu quả bằng cách làm việc theo đúng thứ tự và đọc các danh sách deprecation.
Chỉ số CRAP đã có trong báo cáo coverage của PHPUnit từ năm 2007 ban đầu là thử nghiệm và vẫn chưa được xác minh thực tế. Nguyên nhân kỹ thuật là vì CRAP dựa trên độ phức tạp cyclomatic kết hợp với khuyến nghị Maintainability Index từ Microsoft, nhưng không có nghiên cứu nào chứng minh độ tin cậy. Hệ quả là các lập trình viên thường cố gắng giảm điểm CRAP thay vì tập trung vào code chất lượng, dẫn đến việc viết code để qua mặt hệ thống. Điều đáng học là CRAP chỉ nên là công cụ tham khảo chứ không nên là mục tiêu tối ưu, vì đo lường maintainability thực sự cần nhiều yếu tố định tính mà con số không thể thể hiện hết.
Tìm hiểu lý do tại chỉ số CRAP trong PHPUnit được duy trì mặc dù chưa được chứng minh giá trị, và tại sao lập trình viên không nên cố gắng đạt điểm CRAP thấp.
I have a rule I don't negotiate on: code without tests doesn't go to production. For me, a feature is done when a test says it works. That test has to keep saying so after the next ten changes. Plenty of teams agree with me in theory and then write tests that nobody trusts. The
Laravel 13.35 đã giới thiệu tính năng mới cho các hàm Fake Assertions như assertPushed(), assertDispatched() và assertSentTo(), cho phép truyền vào một mảng thuộc tính thay vì callback. Thay đổi này giúp code ngắn gọn hơn 30% khi kiểm tra các sự kiện và job. Người dùng không cần viết hàm anonymous function mà có thể trực tiếp truyền mảng thuộc kiện cần kiểm tra vào các assertion. Điều này giúp mã nguồn dễ đọc hơn và giảm thiểu boilerplate code khi test các hệ thống event-driven trong Laravel application.
Laravel 13.35 đơn giản hóa kiểm tra sự kiện và công việc hàng đợi với tính năng mới cho phép sử dụng mảng thuộc tính thay vì callback trong các hàm assert.
Goodhart's Law cảnh báo rằng khi một chỉ số (metric) trở thành mục tiêu, nó sẽ ngừng là một thước đo tốt. Nguyên nhân kỹ thuật là các lập trình viên có thể tối ưu hóa giả mạo (gaming) để đạt mục tiêu code coverage mà không thực sự cải thiện chất lượng code, ví dụ như thêm các test case vô nghĩa. Hệ quả là hệ thống có thể đạt 90% code coverage nhưng vẫn chứa lỗi nghiêm trọng ở các critical path. Bài viết chỉ ra rằng việc sử dụng công cụ như JaCoCo hay Cobertura không giải quyết được vấn đề gốc rễ, cần kết hợp với văn hóa engineering và review code nghiêm ngặt.
Bài viết giải thích tại sao khi chỉ tập trung vào các chỉ đo hiệu suất như code coverage mà không quan tâm đến chất lượng thực tế, lập trình viên sẽ gặp phải vấn đề Goodhart's Law.
Một năm trước, JetBrains đã tung ra đợt tài trợ mã nguồn mở đầu tiên cho PhpStorm. Công ty này tin tưởng vào sức mạnh của open source và tầm quan trọng của nó đối với cộng đồng PHP. Mục đích là hỗ trợ các dự án quan trọng như PHP-AST, PHPStan và Psalm. Sự tài trợ này giúp đảm bảo bảo trì lâu dài và cho phép các dự án thuê nhiều nhà phát triển hơn. Những ai quan tâm đến hệ sinh thái PHP nên tham gia đóng góp để duy trì động lực phát triển của các công cụ này.
Bài viết này giúp lập trình viên hiểu được JetBrains tiếp tục hỗ trợ các dự án mã nguồn mở PHP và đóng góp cho cộng đồng.
Assert DOM, dispatched events, AND database rows in one PHPUnit test💻 Catch Simon André at #SymfonyCon Warsaw 2026 for live demos on testing Live Components, payment flows, and visual regression! …
Yes. This article is about using non-breakable spaces to name tests. And the fact that it's awesome. And why you should use them too. public function test a user can add a product to a wishlist() { // ... } The code above is valid PHP code and works. Non-breaking spaces (aka in HTML) look like spaces in editors but are actually interpreted like any other character by PHP.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000 bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử