2012-01-19 25 views

Trả lời

25

Trên googling tôi tìm thấy Behavior Driven Development (BDD) with SpecFlow and ASP.NET MVC. Bạn có thể thấy nó hữu ích, hãy xem. Cũng trải qua Behavior-Driven Development with SpecFlow and WatiN

Một bài thuyết trình tốt đẹp trên Pros and Cons of BDD

Một kênh 9 Video Behavior-Driven Development in the Real World

và cuối cùng nhưng không kém phần quan một bài báo InfoQ Behavior Driven Development In .NET

+0

Cảm ơn bạn Haris, nhưng bất kỳ ai cũng có thể Google và trả lại các liên kết bài viết. Tôi hy vọng sẽ nghe một số kinh nghiệm chuyên môn từ các nhà phát triển và những gì họ biết về các khuôn khổ này.Nếu bạn biết thêm về SpecFlow, vui lòng cho tôi biết. –

+0

Tôi không thể giới thiệu SpecFlow và WatiN đủ, một sự kết hợp tuyệt vời! –

5

cũng MSpec là một khuôn khổ tốt.

Tôi sử dụng nó trong ngăn xếp của Microsoft mà bạn đề cập (C#, ASP.Net và MVC) và tôi thích cú pháp của mình.

BDD giúp bạn suy nghĩ theo cách kinh doanh/tính năng theo định hướng không chỉ theo cách mã. Vì vậy, bạn tập trung nhiều nhất vào giá trị kinh doanh.

Nó cũng giúp kiểm tra sự chấp nhận của người dùng để tạo sự tin tưởng giữa bạn và khách hàng.

2

Có một công cụ tuyệt vời, được gọi là SpecFlow. SpecFlow được lấy cảm hứng từ Cucumber - khuôn khổ BDD nổi tiếng cho Ruby on Rails. Và có một số lượng lớn các lợi thế.

Bạn chắc chắn nên kiểm tra xem.

+0

Hãy cho tôi biết về nó, xin vui lòng. –

30

+1 để giới thiệu của mọi người về SpecFlow cho các tình huống; không bao giờ sử dụng nó nhưng nghe nhiều điều tốt về nó. Tôi đã sử dụng đồng bằng NUnit với một DSL nhỏ như this. MSTest sẽ hoạt động tương tự.

Bạn có thể cũng làm BDD trong không gian đơn vị, đó là những gì MSpec được thiết kế để thực hiện. Cá nhân tôi ghét MSpec, nhưng phần còn lại của đội ở đây thích nó. Họ thích viết các ví dụ về cách mã hoạt động. Tôi thích cho thấy lý do tại sao hành vi này có giá trị. Đó là một sự phân biệt tinh tế và nếu bạn không lo lắng về việc làm điều này ở cấp độ đơn vị nó sẽ không đánh bạn.

Các khung công tác khác để xem xét bao gồm Concordion, Fitnesse.NET (vui lòng đặt FitSharp phía sau!) Và TickSpec.

Trong thế giới thực, bit có giá trị nhất của BDD theo một chặng đường dài là các cuộc hội thoại , không phải là các thử nghiệm tự động. Dưới đây là một số gợi ý nhanh và mẹo để làm cho nó hoạt động:

  • Không viết kiểm tra tự động về những thứ có thông lượng. Nó chỉ cam kết bạn để công cụ bạn đã sai. Chờ cho đến khi giao diện người dùng đã giải quyết một chút rồi làm điều đó.

  • Nếu bạn không quan tâm nhiều đến giao diện người dùng, nhưng hãy quan tâm đến tính toàn vẹn của dữ liệu, hãy viết kịch bản trên lớp bộ điều khiển/người trình bày (ví dụ: cho màn hình quản trị).

  • Không bắt đầu bằng thông tin đăng nhập. Bắt đầu bằng cách mô tả một phần có giá trị của ứng dụng mà bạn có thể đăng nhập. Thực hiện điều đó trước tiên (giả sử bạn chỉ có một người dùng). Bạn sẽ nhận được phản hồi nhanh hơn về các bit nguy hiểm.

  • Tìm kiếm phản hồi nhanh về các bit nguy hiểm, thường sẽ là các bit mà bạn chưa bao giờ thực hiện trước đây. Sử dụng các tình huống để có cuộc trò chuyện xung quanh họ. Viết bất cứ điều gì thú vị bạn khám phá ra, nhưng quên các kịch bản rõ ràng - chúng rõ ràng! Đừng lo lắng về việc tự động hóa chúng để bắt đầu. Có cuộc hội thoại quan trọng hơn việc viết ra các cuộc hội thoại quan trọng hơn là tự động hóa các cuộc hội thoại.

Chúc may mắn! Nếu bạn muốn biết thêm về BDD, tôi đặt cùng một trang liên kết có liên quan here.

+0

Đây là một chút giống như những gì tôi đang tìm kiếm. +1 –

0

Một khung BDD thú vị là Concordion.NET. Nó là một khung công tác BDD mã nguồn mở cho ngăn xếp của Microsoft sử dụng NUnit để thực thi các thử nghiệm Concordion.NET: https://github.com/concordion/concordion-net Khi các đặc tả Concordion được viết bằng HTML đơn giản, nó cung cấp cơ sở tốt cho hệ thống tài liệu sống. Bạn có thể sử dụng trình soạn thảo những gì bạn đang xem (WYSIWYG) như BlueGriffon để mô tả hành vi dự định của phần mềm của bạn trong các tài liệu HTML đơn giản và đặt chúng để xác minh hệ thống của bạn đang được kiểm tra. Theo số excellent classification of BDD tools, Concordion.NET tập trung vào đầu vào có thể đọc được của doanh nghiệp (và cũng có thể đạt được kết quả kinh doanh có thể đọc được). Nó di chuyển ngay cả ngoài BDD và hỗ trợ ATDD: http://assertselenium.com/2012/11/05/difference-between-tdd-bdd-atdd/

0

Spec4Net (https://bitbucket.org/fthomsen/spec4net/) cũng là một khung làm đẹp. Chúng tôi sử dụng nó rộng rãi tại nơi làm việc. Đường cong học tập gần như không tồn tại và dòng chảy tự nhiên dường như trực quan.

4

LightBDD là khung nguồn mở cho phép viết các bài kiểm tra BDD dễ đọc nhưng cũng dễ bảo trì và mở rộng khi dự án phát triển lớn hơn.

Các tính năng chính mà nó cung cấp là:

  • dễ đọc kịch bản,
  • dễ dàng trong việc kiểm tra,
  • tích hợp với các khuôn khổ thử nghiệm nổi tiếng (NUnit/MbUnit/MsTest/xUnit),
  • theo dõi thực hiện các bước theo kịch bản và đo thời gian thực hiện,
  • tổng kết thi hành thử nghiệm tạo báo cáo ary bằng HTML (an example report), XML và định dạng văn bản thuần túy.

Nó dựa trên các thử nghiệm được viết hoàn toàn bằng mã, có nghĩa là hỗ trợ gốc cho tái cấu trúc, phân tích mã, chạy thử và tất cả các tính năng khác mà Visual Studio/Intellisense/Resharper cung cấp.

Một thử nghiệm ví dụ viết bằng khuôn khổ này trông như sau:

[TestFixture] 
[FeatureDescription(
@"In order to access personal data 
As an user 
I want to login into system")] //feature description 
[Label("Story-1")] 
public partial class Login_feature //feature name 
{ 
    [Test] 
    [Label("Ticket-1")] 
    public void Successful_login() //scenario name 
    { 
     Runner.RunScenario(

      Given_user_is_about_to_login, //steps 
      Given_user_entered_valid_login, 
      Given_user_entered_valid_password, 
      When_user_clicked_login_button, 
      Then_login_is_successful, 
      Then_welcome_message_is_returned_containing_user_name); 
    } 
} 

Thông tin thêm về khuôn khổ có thể được tìm thấy trên project wiki pageproject main page.

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