2008-09-17 46 views
14

Các quy ước tốt nhất về lắp ráp thử nghiệm đặt tên trong .NET (hoặc bất kỳ ngôn ngữ hoặc nền tảng khác) là gì?Quy ước đặt tên thử nghiệm .NET

Những gì tôi đang chủ yếu là phân chia giữa là các tùy chọn (vui lòng cung cấp những người khác!):

  • Company.Website-dự án
  • Company.Website.Tests

hoặc

  • Company.Website
  • Company.WebsiteTests

Vấn đề với giải pháp đầu tiên là nó trông giống như .Tests là một phụ namespace vào trang web, trong khi họ thực sự có nhiều song song trong tâm trí tôi. Điều gì sẽ xảy ra khi một không gian tên con mới đi vào hoạt động, chẳng hạn như Company.Website.Controls, tôi nên đặt các thử nghiệm cho không gian tên đó ở đâu?

Có lẽ nó thậm chí nên là: Tests.Company.WebsiteTests.Company.Website.Controls, và vân vân.

+2

Tại sao điều này đóng? Tất cả câu trả lời 'dựa trên ý kiến' vẫn là câu trả lời nơi người dùng có thể xem danh sách các tùy chọn và chọn những gì họ cảm thấy là tốt nhất cho họ. –

Trả lời

18

Tôi sẽ đi với

* Company.Website - the project 
* Company.Website.Tests 

Lý do ngắn và câu trả lời rất đơn giản, thử nghiệm và dự án được liên kết trong mã, do đó nó nên chia sẻ không gian tên.

Nếu bạn muốn tách mã và thử nghiệm trong giải pháp, bạn vẫn có tùy chọn đó. ví dụ. bạn có thể thiết lập một giải pháp với

-Code Thư mục

  • Company.Website

-Tests Thư mục

  • Company.Website.Tests
+5

Ngoài ra, bạn không cần phải thêm một cách sử dụng cho không gian tên Company.Website này đường. –

13

Cá nhân tôi sẽ đi với

Company.Tests.Website

Bằng cách đó bạn có một bài kiểm tra không gian tên và các dự án thông thường bên trong nó, theo cấu trúc tương tự như các dự án thực tế.

7

Tôi thực sự có một gốc song song thay thế.

Thử nghiệm.Company.Website

Nó hoạt động tốt cho những điều không rõ ràng khi bạn có các không gian tên phụ mới.

+4

Tại sao lại là downvote? Nhà phê bình có thể giải thích về điều đó không? Nó là tốt như bất kỳ giải pháp đề xuất khác - và có một điểm tốt. –

+0

Điều này gây ra vấn đề với không gian tên tham chiếu. Đôi khi nó cũng hơi nhức đầu, vì sao tôi đang tìm kiếm SO cho cách đề xuất làm điều đó .. (tôi cũng không bỏ phiếu) – ppumkin

0

Tôi thường đặt tên cho các dự án thử nghiệm Dự án thử nghiệm cho ngắn gọn trong Solution Explorer và tôi sử dụng Company.Namespace.Tests cho không gian tên.

5

Tôi là một fan hâm mộ lớn của cơ cấu không gian tên thử nghiệm như thế này:

Company.Tests.Website.xxx

Company.Tests.Website.Controls

Cũng giống như bạn , Tôi nghĩ rằng các bài kiểm tra như là một cấu trúc không gian tên song song với mã chính và điều này cung cấp cho bạn điều đó.Nó cũng có lợi thế đó, vì không gian tên vẫn bắt đầu với tên công ty của bạn, bạn không nên có bất kỳ va chạm đặt tên với thư viện của bên thứ 3

0

tôi thích đi với:

Company.Website.Tests

Tôi không quan tâm đến bất kỳ không gian tên phụ như Company.Website.Controls, tất cả các thử nghiệm đi vào cùng một không gian tên: Company.Website.Tests. Bạn không muốn các không gian tên thử nghiệm của bạn phải CÓ song song với phần còn lại của mã của bạn bởi vì nó chỉ làm cho việc tái cấu trúc các không gian tên mất gấp đôi thời gian.

0

tôi thích Company.Website.Spec và thường có một dự án thử nghiệm cho mỗi giải pháp

0

Chúng tôi làm theo một cách tiếp cận nhúng:

Company.Namespace.Test 
Company.Namespace.Data.Test 

Bằng cách này, các xét nghiệm gần với mã đang được thử nghiệm, mà không cần phải chuyển đổi qua lại giữa các dự án hoặc tìm kiếm tham chiếu để đảm bảo có một thử nghiệm bao gồm một phương pháp cụ thể. Chúng tôi cũng không phải duy trì hai phân cấp riêng biệt, nhưng giống hệt nhau.

Chúng tôi cũng có thể kiểm tra các phần riêng biệt của mã khi chúng tôi cải tiến và phát triển.

Có vẻ hơi kỳ lạ lúc đầu, nhưng về lâu dài nó đã hoạt động thực sự tốt cho chúng tôi.

1

tôi quá thích "Kiểm tra" tiền tố tên thực tế của hội đồng để dễ dàng xem tất cả các bộ phận kiểm tra đơn vị của tôi được liệt kê theo thứ tự bảng chữ cái với nhau khi tôi chọn chúng để kéo vào NUNit hoặc bất kỳ bộ kiểm tra nào bạn đang sử dụng.

Vì vậy, nếu trang web là tên của giải pháp của tôi (và lắp ráp), tôi đề nghị -

Tests.Website.dll để đi cùng với mã lắp ráp thực tế Website.Dll

0

Với MVC bắt đầu trở thành hiện thực trong thế giới phát triển web .net, tôi sẽ bắt đầu suy nghĩ theo những dòng này. Hãy nhớ rằng M, V và C là các thành phần riêng biệt, do đó:

  • Company.Namespace.Website
  • Company.Namespace.Website.Core
  • Company.Namspance.Website.Core.Tests
  • Company.Namespace.Website.Model
  • Company.Namespace.Website.Model.Tests

Trang web là chế độ xem nhẹ của bạn. Lõi chứa bộ điều khiển, trình trợ giúp, giao diện chế độ xem, v.v. Core.Tests là các thử nghiệm của bạn cho Core chính. Mô hình dành cho mô hình dữ liệu của bạn. Điều thú vị ở đây là các thử nghiệm mô hình của bạn có thể tự động hóa các thử nghiệm cơ sở dữ liệu cụ thể của bạn.

Điều này có thể là quá mức cần thiết đối với một số người, nhưng tôi thấy rằng nó cho phép tôi tách mối quan tâm khá dễ dàng.