2009-06-10 30 views
68

Nhanh chóng, có ai đi qua một thư viện tương tự như dưa chuột của Ruby (một DSL có thể đọc được của con người để xác định các câu chuyện về ca sử dụng có thể được kiểm tra) trong .NET.Thay thế dưa chuột cho .NET

Trả lời

72

Bạn cũng nên kiểm tra SpecFlow, đó là một dự án mã nguồn mở để làm BDD với .NET.

SpecFlow đang sử dụng cùng một định dạng định nghĩa (Gherkin), như dưa chuột, nhưng bạn có thể viết định nghĩa bước của bạn trong .NET. Về cơ bản nó tạo ra các lớp thử nghiệm đơn vị (NUnit, MsTest, xUnit, vv) từ các tệp tính năng của bạn, vì vậy bạn có thể sử dụng cùng một công cụ kiểm tra đơn vị giống như bạn làm với các bài kiểm tra đơn vị thực. Bằng cách này, việc tích hợp các thử nghiệm chức năng BDD vào bản dựng tích hợp cũng dễ dàng hơn.

Trong các phiên bản gần đây, SpecFlow có tính năng tô màu cú pháp cho Visual Studio 2010 và hỗ trợ cho Silverlight và Mono/MonoDevelop.

+0

Đẹp, trông rất tuyệt. Cảm ơn – Owen

32

Chắc chắn. Nó được gọi là Cucumber. Có một ví dụ về cách kiểm tra mã .NET trong số Cucumber examples directory và tài liệu trên Cucumber Wiki cho cả hai .NETMono.

+0

Tôi đã cố gắng này, nhưng vẫn giữ đánh một vết sưng với chạy wrapper ICucumber. Thông báo tôi nhận được cho biết tệp cấu hình .yml bị thiếu. – Owen

+0

Đã thử mọi thứ được mô tả ở đây: http://thomaslundstrom.blogspot.com/2009/03/on-getting-started-with-using-cucumber.html – Owen

+1

Tôi đoán bạn đang đề cập đến thông báo này: "dưa chuột. không tìm thấy yml.Xin vui lòng tham khảo tài liệu của dưa chuột về việc xác định cấu hình trong cucumber.yml.Bạn phải xác định hồ sơ 'mặc định' để sử dụng lệnh dưa chuột mà không có bất kỳ đối số nào. Gõ 'dưa chuột - giúp đỡ' để sử dụng. (Cucumber :: Cli :: YmlLoadError) ", phải không? Câu hỏi rõ ràng, khi một chương trình phàn nàn rằng nó không thể tìm thấy một tập tin, là tập tin thực sự có hay không? Bởi vì, nếu tập tin không có, thì lý do tại sao nó không thể được tìm thấy là loại hiển nhiên ... –

3

Tôi đã viết lên một bài đăng blog chi tiết quá trình tôi đi theo để có được dưa chuột chạy với IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/

+0

Hãy cho nó chạy qua và lấy lại cho bạn. – Owen

+0

Tôi cũng đang làm việc để chuyển win32console sang IronRuby để chúng ta có thể nhận được kết quả điều khiển màu giống như chúng ta làm trong MRI: http://github.com/hotgazpacho/ironruby-win32console/ –

17

Dường như có 3 khả năng trong lĩnh vực này:

  1. Sử dụng dưa chuột và IronRuby. Here's a blog trên một số bước để bắt đầu với điều này. Nhược điểm có vẻ là hiệu suất. Tôi đã đọc các tài khoản có nội dung là số slower in general và một số khác cho biết đó chỉ là really slow to spin up. Điều này là xa kết luận mặc dù, kể từ khi IronRuby vẫn còn trong phát triển tích cực.

  2. Sử dụng Cuke4Nuke. Tôi đã nghe sản phẩm này được đề xuất một vài lần. Nó thực sự sử dụng Ruby và Cucumber thông thường nhưng chạy mã .NET của bạn thông qua một máy chủ. May mắn thay, tất cả các biến chứng đó là minh bạch khi bạn đang sử dụng nó. Cuke4Nuke không còn hoạt động.

  3. Sử dụng SpecFlow. Đây là một cổng .NET của Cucumber. Bởi vì điều này, nó có thể không có tất cả các tính năng của Cucumber, và nó có thể có các tính năng bổ sung. Điều tốt đẹp là bạn không cần phải cài đặt Ruby.

Tại thời điểm này, dường như không rõ lựa chọn nào trong số này là tùy chọn tốt nhất. Cá nhân tôi đang lên kế hoạch bắt đầu với Cuke4Nuke.

+2

Đối với bất cứ ai đọc điều này, có vẻ như Cuke4Nuke không được tán thành ủng hộ SpecFlow http://www.richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net/ – GuiSim

2

StoryTeller có phần liên quan mặc dù nó không phải là BDD nghiêm ngặt. Dường như nó hỗ trợ một loại thử nghiệm hơi khác nhưng được viết bằng .NET. Đọc thêm trên Jeremy Millers blog

2

Ngoài ra còn có StoryQ. Đây là cách tiếp cận tập trung vào các câu chuyện của người dùng có thể báo cáo lại khách hàng. http://storyq.codeplex.com

StoryQ là khung di động BDD nhúng (dll) đơn. NET 3.5. Nó chạy trong runner thử nghiệm hiện tại của bạn và giúp tạo ra kết quả thử nghiệm thân thiện với con người (html hoặc văn bản). Giao diện thông thạo của StoryQ bổ sung tính năng gõ mạnh mẽ, intellisense và tài liệu vào ngữ pháp BDD của bạn.

2

BDD in plain English có thể được thực hiện với Concordion.NET. Các chi tiết kỹ thuật của hành vi dự kiến ​​được viết bằng HTML.

Bất kỳ câu nào của bất kỳ cấu trúc nào đều có thể được sử dụng cho các bài kiểm tra Concordion.NET. Ví dụ, không cần thiết phải viết một câu như "được cấp một tài khoản ngân hàng với số dư 10 đô la, khi rút tiền 20 đô la được bắt đầu, giao dịch không thành công". Thay vào đó, bất kỳ loại câu nào cũng có thể được sử dụng như "giao dịch 20 $ không thành công, nếu tài khoản không đủ số dư 10 đô la".

kiểm tra Concordion.NET được thực hiện với sự giúp đỡ của NUnit, được tích hợp trong nhiều môi trường khác nhau: https://github.com/concordion/concordion-net

Các vấn đề liên quan