2010-10-19 18 views

Trả lời

6

Cũng có một điều, các cuộc hội thoại documentation for doctest về "các phiên Python tương tác". Không có tương đương với điều đó trong C# ... vậy làm thế nào đầu ra sẽ được biểu diễn? Làm thế nào bạn sẽ thực hiện tất cả các thiết lập cần thiết?

Tôi dám nói điều đó là có thể, nhưng cá nhân tôi nghĩ rằng ít nhất là cho C#, rõ ràng hơn để có các bài kiểm tra đơn vị làm bài kiểm tra đơn vị, nơi bạn có tất cả lợi ích của thực tế là bạn đang viết mã thay vì nhận xét. Bạn có thể kiểm tra tính chính xác của cú pháp tại thời gian biên dịch, bạn có IntelliSense, đánh dấu cú pháp, hỗ trợ trình gỡ lỗi, v.v.

Nếu bạn viết mã, tại sao không đại diện cho số làm mã? Phải thừa nhận rằng nó bao gồm mã mẫu trong tài liệu XML một cách hợp lý, nhưng hiếm khi ở dạng thử nghiệm - và không tương đương với "phiên tương tác", nó sẽ yêu cầu một cấu trúc nhân tạo để thể hiện đầu ra ở dạng thử nghiệm.

Tôi không nói đây là một tính năng xấu trong Python - chỉ là một trong những tính năng mà tôi không tin vào bản đồ đặc biệt tốt. Ngôn ngữ có kiểu riêng và không phải mọi đối tượng địa lý bằng ngôn ngữ X sẽ có ý nghĩa bằng ngôn ngữ Y.

+5

C# có một số vỏ tương tác, một trong những việc tốt nhất Mono của [C# REPL] (http://www.mono-project.com/CsharpRepl). Nhưng tôi nghĩ bạn có thể đang thiếu điểm doctest. Nó không phải là một thay thế cho đơn vị kiểm tra mã * chính *. Thay vào đó, đó là cách (unit-) kiểm tra * tài liệu *. I E. nó xác minh rằng mã mẫu trong tài liệu làm những gì nó nói là không. Mã mẫu này được cho là ở dạng giúp làm rõ cho người đọc, không phải ở dạng thử nghiệm. –

+0

'doctest' cũng có sử dụng thứ cấp để kiểm tra chung mã chính. Nhưng như các tài liệu cảnh báo, "điền tài liệu của bạn với các trường hợp kiểm tra tối nghĩa làm cho tài liệu xấu", vì vậy nó khuyến cáo phân biệt giữa hai mục đích này. –

+1

@Matthew: Chỉ vì có việc triển khai các trình vỏ tương tác không có nghĩa là bản thân C# có hành vi trình bao tương tác được xác định. Tôi sẽ không thích xem cú pháp triển khai cụ thể trong nhận xét. Về việc liệu tôi có hiểu sai câu hỏi hay không: OP đã gợi ý rằng đây sẽ là cách tốt để giới thiệu một người nào đó đến các bài kiểm tra đơn vị. Tôi nghĩ một cách tốt hơn để giới thiệu thử nghiệm đơn vị là viết một số bài kiểm tra đơn vị * thực tế *. –

1

Microsoft Roslyn sắp xuất hiện. Tôi tin rằng đây có thể là công nghệ hỗ trợ cho doctest.net

..và GWT.net cũng vậy.

:)

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