2011-02-09 43 views
25

Đừng làm cho tôi sai. Tôi nghĩ cả hai dự án đều tuyệt vời.Behat over Cucumber in PHP

Nhưng khi cả hai php và phát triển ruby ​​Tôi tự hỏi nếu có có bất kỳ lý do thuyết phục, bên cạnh rào cản ngôn ngữ càng tốt, tại sao người ta sẽ chọn Behat qua Cucumber (với cuke4php) cho BDD ngay cả khi làm việc với php hoặc một số khuôn khổ php.

Trả lời

69

Tôi là nhà phát triển Behat.

Tại sao tôi đã phát triển Behat thay vì tùy biến dưa chuột:

  1. Speed. Không có cách nào đơn giản để bootstrap/chạy PHP từ mã Ruby. Điều này có nghĩa là bạn cần phải triển khai dây/proxy và những thứ khác, điều này làm cho các bài kiểm tra của bạn cực kỳ chậm hơn. Và kiểm tra chậm hơn không phải là một thử nghiệm, nó chỉ là mã ăn tiền của khách hàng của bạn.
  2. Khả năng mở rộng. Có rất ít nhà phát triển PHP thực sự biết Ruby. Đó là một công cụ khó sử dụng, mà nhiều người không hiểu! Tất cả các ví dụ được viết cho Cucumber là mã Ruby và bạn thậm chí không thể nhìn vào nguồn Cucumber, bởi vì, giả sử, bạn không biết Ruby. Nó giống như mua một tàu ngầm khi bạn chỉ cần một chiếc taxi.

Về mặt tính năng, Behat và Cucumber gần như giống nhau (tôi đã làm việc chăm chỉ để đạt được điều này). Nhưng xét về tốc độ/khả năng mở rộng/logic từ quan điểm của nhà phát triển PHP - Behat là tốt hơn, bởi vì nó là một công cụ PHP bản địa nhanh và sạch. Behat không phải là một cổng Cucumber, như bạn có thể nghĩ đầu tiên, nó được xây dựng hoàn toàn từ mặt đất trên PHP 5.3. Behat đang cố gắng để mô phỏng Cucumber với đọc đầu vào của nó (tính năng) và định dạng đầu ra (định dạng), nhưng nó không phải là một cổng Cucumber (không có cấu trúc cú pháp Ruby trong PHP).

+1

Cảm ơn bạn, đó là câu trả lời tôi đang tìm kiếm. – Krule

+9

đá hành xử! Hãy tiếp tục :) –

+2

Yep, +1 cho Behat thay vì Cucumber cho PHP, cũng nếu bạn sử dụng Symfony2 có một gói Behat (http://symfony2bundles.org/Behat/BehatBundle)! – InvertedAcceleration