Nhanh lên, có ai xem qua một thư viện tương tự như quả 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 ca sử dụng có thể được kiểm tra) trong lĩnh vực .NET không?
Câu trả lời:
Bạn cũng nên kiểm tra SpecFlow , đó là một dự án mã nguồn mở để thực hiện BDD với .NET.
SpecFlow đang sử dụng định dạng định nghĩa tương tự (Gherkin), giống như dưa chuột, nhưng bạn có thể viết định nghĩa bước của mình trong .NET. Về cơ bản, nó tạo ra các lớp kiểm thử đơn vị (NUnit, MsTest, xUnit, v.v.) 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ụ thực thi kiểm tra đơn vị, giống như bạn làm với các kiểm thử đơn vị thực. Bằng cách này, việc tích hợp các bài kiểm tra 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ợ Silverlight và Mono / MonoDevelop.
Chắc chắn rồi. Nó được gọi là Dưa chuột . Có một ví dụ về cách kiểm tra mã .NET trong thư mục ví dụ Cucumber và tài liệu trên Cucumber Wiki cho cả .NET và Mono .
Dường như có 3 khả năng trong không gian này:
Sử dụng Cucumber và IronRuby. Đây là blog về một số bước để bắt đầu với việc này. Nhược điểm dường như là hiệu suất. Tôi đã đọc các tài khoản nói rằng nó nói chung chậm hơn và những người khác nói rằng nó thực sự chậm chạp . Tuy nhiên, điều này vẫn chưa thể kết luận được vì IronRuby vẫn đang trong quá trình phát triển tích cực.
Sử dụng Cuke4Nuke . Tôi đã nghe giới thiệu sản phẩm này 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 được phát triển nữa.
Sử dụng SpecFlow . Đây là một cổng .NET của Cucumber. Vì điều này, nó có thể không có tất cả các tính năng của Cucumber và có thể có các tính năng bổ sung. Điều tuyệt vời là bạn không cần phải cài đặt Ruby.
Tại thời điểm này, có vẻ như không rõ lựa chọn nào trong số này là lựa chọn tốt nhất. Cá nhân tôi dự định bắt đầu với Cuke4Nuke.
Tôi đã viết một bài đăng trên blog mô tả chi tiết quá trình tôi đã làm theo để Cucumber chạy với IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller có phần liên quan mặc dù nó không hoàn toàn là BDD. Nó dường như hỗ trợ một loại kiểm tra hơi khác nhưng được viết bằng .NET. Đọc thêm trên blog của Jeremy Millers
BDD bằng tiếng Anh đơn giản có thể được thực hiện với Concordion.NET . Các đặc tả của hành vi mong đợi đượ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 có số dư 10 $, khi bắt đầu rút 20 $, giao dịch không thành công". Thay vào đó, bất kỳ loại câu nào có thể được sử dụng chẳng hạn như "giao dịch 20 đô la không thành công, nếu tài khoản không đủ số dư 10 đô la".
Các bài kiểm tra Concordion.NET được thực hiện với sự trợ 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
Ngoài ra còn có StoryQ. Đây là một cách tiếp cận tập trung của nhà phát triển đối với 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à một khung công tác BDD di động (đơn dll), nhúng cho .NET 3.5. Nó chạy trong trình chạy thử nghiệm hiện có của bạn và giúp tạo ra đầu ra thử nghiệm thân thiện với con người (html hoặc văn bản). Giao diện trôi chảy của StoryQ bổ sung khả năng nhập liệu mạnh mẽ, intellisense và tài liệu cho ngữ pháp BDD của bạn.
Tôi có một bài viết hướng dẫn cách sử dụng Cucumber với C # tại http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html Thời gian chạy đã được cải thiện đáng kể với IronRuby 1.0.