2010-09-09 15 views
10

Tôi đọc rằng MbUnit là Nunit trên steroid, nhưng tôi không hiểu tại sao. Từ những gì tôi đã đọc ở đây, tôi ở đây Nunit phổ biến hơn MbUnit. Một trong những lý do chính là vì nó có giao diện thông thạo. Đây có phải là lý do duy nhất không?MbUnit vs Nunit

Tại sao tôi nên dùng MbUnit hơn Nunit hoặc ngược lại? Cảm ơn!

+0

có thể trùng lặp của [NUnit so với MbUnit so với MSTest so với xUnit.net] (http: // stackoverflow.com/questions/261139/nunit-vs-mbunit-vs-mstest-vs-xunit-net) – nawfal

Trả lời

9

NUnit bắt đầu như một cổng của JUnit và đã tồn tại trong một thời gian dài. MBUnit đến sau khi thực tế, và nó mang lại "Generative" đơn vị thử nghiệm. Điều này có nghĩa là nó có khả năng thực hiện một bài kiểm tra đơn vị và tạo ra một số bài kiểm tra từ nó. Một cách để làm điều này là thuộc tính [RowTest].

Trường hợp kiểm tra đơn vị điển hình sẽ không có tham số, RowTest sẽ lấy tham số và tạo nhiều thử nghiệm từ đó. Tôi tin rằng NUnit có khái niệm về RowTest bây giờ là tốt.

[Test] 
[Row(1,1,2)] 
[Row(2,2,4)] 
[Row(1,2,3)] 
public void X_plus_Y_equals_Z(x,y,z) 
{ 
    Assert.AreEqual(z, x+y); 
} 

Điều này sẽ dẫn đến 3 thử nghiệm được chạy trong thử nghiệm. Ngoài ra còn có các tính năng cho việc quay lại các giao dịch cơ sở dữ liệu.

NUnit có giao diện thông thạo để xác nhận, đó là tốt đẹp, nhưng không thực sự là điểm bán hàng. NUnit có lẽ cũng có một số công cụ hỗ trợ tốt hơn (Resharper của thử nghiệm Á hậu làm việc với NUnit ra khỏi hộp, nhưng đòi hỏi bổ sung cho MBUnit).

Cuối cùng, bạn nên chọn một khuôn khổ và đi cùng với nó. Các kỹ năng bạn nhặt được rất linh động từ khung này sang khung khác.

+0

Có, Nunit hiện có RowTest. Tôi đã sử dụng cả hai và chúng rất giống nhau. MbUnit trông đẹp hơn, lol. – Xaisoft

+2

Tôi sẽ không đăng bất kỳ câu trả lời nào ở đây vì tôi tích cực đóng góp cho một trong những dự án đó và ý kiến ​​của tôi là thiên vị. Nhưng tôi chỉ muốn đề cập rằng [Row] không phải là cách duy nhất để thực hiện các thử nghiệm dựa trên dữ liệu trong MbUnit. Có một số thuộc tính nguồn dữ liệu thuận tiện khác (http://gallio.org/wiki/doku.php?id=mbunit:data-driven_testing) chẳng hạn như [Cột] và [Nhà máy] trong số nhiều thuộc tính khác. –

+1

NUnit cũng có một số cách khác để thực hiện thử nghiệm dựa trên hàng. Một trong những mục yêu thích của tôi là sử dụng tên phương thức của phương thức trả về dữ liệu thử nghiệm. –

14

Mặc dù NUnit hiện nay bao gồm các MbUnit tính năng phổ biến nhất tiên tiến, MbUnit là vẫn còn nhiều tính năng phong phú, ví dụ:

Giao diện thông thạo có thể đẹp nhưng nói chung chúng không thêm bất kỳ tính năng mới nào, chúng chỉ hiển thị mọi thứ cho người lập trình theo một cách khác.

NUnit phổ biến hơn vì nó có trước tiên (do đó có nhiều bài viết về nó trên web và công cụ tốt hơn) và vì hầu hết các lập trình viên không quan tâm hoặc cần các tính năng nâng cao mà MbUnit cung cấp.

+1

cảm ơn câu trả lời. – Xaisoft

0

Chỉ cần ghi chú cho những người đang nghiên cứu:

Từ trang web của MbUnit: "Gallio và MbUnit hiện đang gián đoạn".

Tài khoản MbUnit GitHub hiển thị lịch sử cam kết cực kỳ chậm trễ.

0

MbUnit plugin chỉ có sẵn cho Re # 6 (không có bất kỳ thao tác dư thừa nào). Vì vậy, nếu bạn sử dụng VS 2012 hoặc 2013, bạn phải sử dụng phiên bản mới hơn của Re # hỗ trợ NUnit ra khỏi hộp.

Dường như MbUnit và Gallio không còn được hỗ trợ.