Dưa chuột thay thế cho .NET


80

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:


90

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.


35

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ả .NETMono .


Tôi đã thử điều này, nhưng tiếp tục gặp sự cố khi chạy trình bao bọc ICucumber. Tôi nhận được thông báo rằng tệp cấu hình .yml bị thiếu.
Owen

Thử tất cả mọi thứ được mô tả ở đây cũng như: thomaslundstrom.blogspot.com/2009/03/...
Owen

1
Tôi đoán bạn đang đề cập đến thông báo này: "Không tìm thấy dưa chuột.yml. Vui lòng tham khảo tài liệu của dưa chuột về cách xác định cấu hình trong dưa chuột.yml. Bạn phải xác định cấu hình 'mặc định' để sử dụng lệnh dưa chuột mà không có bất kỳ đối số nào. Nhập "Cucumber --help" để 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 tệp, là tệp có thực sự ở đó hay không? Bởi vì, nếu các tập tin không có, sau đó lý do tại sao nó không thể được tìm thấy là loại rõ ràng ...
Jörg W Mittag

1
Tôi vẫn chưa hiểu ý bạn. Liên kết bạn đã đăng hoàn toàn không liên quan gì đến vấn đề của bạn. Và bạn có nghĩa là gì bởi "tệp dường như ở đó"? Bạn đã viết tệp, bạn đã lưu tệp, bạn nên biết liệu nó có ở đó hay không!
Jörg W Mittag

1
Ví dụ của bạn và liên kết wiki được 404ing
mattumotu

20

Dường như có 3 khả năng trong không gian này:

  1. 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.

  2. 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.

  3. 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.


2
Đối với bất cứ ai đọc bài viết này, có vẻ như Cuke4Nuke được phản đối ủng hộ SpecFlow richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net
GuiSim

3

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/


Tôi sẽ chạy qua và quay lại với bạn.
Owen

Tôi cũng đang làm việc trên porting win32console để IronRuby để chúng tôi có thể nhận được màu giao diện điều khiển đầu ra như chúng ta làm trong MRI: github.com/hotgazpacho/ironruby-win32console
Will Xanh

3

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


3

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


2

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.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.