Những khung và công cụ tiên tiến nhất có sẵn cho python để thực hành Phát triển hướng hành vi? Đặc biệt là tìm các công cụ tương tự như rspec và mocha cho ruby sẽ rất tuyệt.
Những khung và công cụ tiên tiến nhất có sẵn cho python để thực hành Phát triển hướng hành vi? Đặc biệt là tìm các công cụ tương tự như rspec và mocha cho ruby sẽ rất tuyệt.
Câu trả lời:
Ian Bicking khuyên bạn nên sử dụng doctest cho thiết kế hướng hành vi:
Cá nhân tôi có xu hướng sử dụng mũi giả và khoảng trống trong phong cách thiết kế hướng hành vi. Cụ thể, plugin spec cho mũi là tuyệt vời cho BDD.
Xà lách có nghĩa là một công cụ giống dưa chuột cho trăn: http://lettuce.it/
Bạn có thể lấy nguồn tại github.com/gabrielfalcao/lettuce
Tôi thực sự khuyên bạn nên cư xử .
Tìm kiếm một bản sao dưa chuột cho Python, tôi bắt đầu sử dụng rau diếp, nhưng thấy nó là một bản sao được thiết kế khá vụng về. Rất Unpythonic.
Sau đó, tôi phát hiện ra hành vi, và đã thực sự hạnh phúc với nó.
Tôi khuyên bạn nên sử dụng một bộ công cụ được phát triển để giúp các lập trình viên thực hành BDD và TDD. Bộ công cụ này được sáng tác bởi: pycukes , specloud , ludibrio và Should -dsl .
Nên-DSL sẽ cung cấp cho bạn những kỳ vọng giống như RSpec. Mọi thứ bạn có thể làm với API kỳ vọng RSpec, cũng nên làm như vậy. Bạn có thể lấy phiên bản mới nhất từ Github .
SpecLoud giúp bạn chạy các unittests giống như BDD. Bạn có thể cài đặt nó bằng cách làm
pip install specloud
Ludibrio là một thư viện để thử nghiệm đôi (Mocks, Stub và Dummies). Cài đặt nó qua
pip install ludibrio
Và PyCukes là công cụ chính cho BDD. Nó sẽ chạy các Kịch bản, vv Một lần nữa,
pip install pycukes
Để biết thêm thông tin xin vui lòng đọc tài liệu công cụ tại PyPi .
Bạn có thể sử dụng "chắc chắn" cho các xác nhận biểu cảm (giống như trong RSpec)
Dự án Pyccuracy là một nỗ lực để cung cấp một ngôn ngữ dành riêng cho miền cho BDD trong Python.
Không giống như doctest, hoạt động ở cấp API, nó mã hóa các hoạt động cấp cao hơn như tải trang web và gửi biểu mẫu. Tôi đã không sử dụng nó nhưng có vẻ hơi hứa hẹn nếu đó là những gì bạn đang tìm kiếm.
Tôi thích Pyccuracy rất nhiều. Tôi đang thực hiện nó trên một dự án cỡ vừa trong những ngày này.
Hãy thử pyspecs . Làm cho các bài kiểm tra dễ đọc và liên tục chạy trong quá trình phát triển là hai mục tiêu chính của tôi khi tạo dự án này.
from pyspecs import given, when, then, and_, the, this
with given.two_operands:
a = 2
b = 3
with when.supplied_to_the_add_function:
total = a + b
with then.the_total_should_be_mathmatically_correct:
the(total).should.equal(5)
with and_.the_total_should_be_greater_than_either_operand:
the(total).should.be_greater_than(a)
the(total).should.be_greater_than(b)
with when.supplied_to_the_subtract_function:
difference = b - a
with then.the_difference_should_be_mathmatically_correct:
the(difference).should.equal(1)
# run_pyspecs.py
| • given two operands
| • when supplied to the add function
| • then the total should be mathmatically correct
| • and the total should be greater than either operand
| • when supplied to the subtract function
| • then the difference should be mathmatically correct
(ok) 6 passed (6 steps, 1 scenarios in 0.0002 seconds)
Tôi có lẽ hoàn toàn thiếu quan điểm, nhưng điều tôi giữ lại trong bài viết ban đầu của BDD là BDD chỉ là TDD được đóng gói lại để nhấn mạnh một số thực tiễn tốt nhất.
Nếu giải thích của tôi là chính xác, bạn có thể nhận được khung BDD chỉ bằng cách đổi tên các phương thức xung quanh trong bất kỳ triển khai xUnit nào . Vì vậy, chỉ cần đi trước và sử dụng các thư viện chuẩn của unittest .
EDIT: Một google nhanh chóng bật lên một mô-đun Hành vi trong Cheese Shop . Tìm kiếm thêm cho BDD không tìm thấy gì khác.