Tôi đã phải vật lộn để thích nghi với cách tiếp cận chuẩn của mình cho mã .NET kiểm tra lái xe đến Ruby.Làm thế nào để di chuyển từ .NET-style TDD sang Ruby?
Như một ví dụ, tôi viết một lớp mà sẽ:
grab all *.markdown files from a directory
foreach file:
extract code samples from file
save code to file.cs in output directory
Thông thường đối với .NET Tôi muốn kết thúc với một cái gì đó như:
class ExamplesToCode {
public ExamplesToCode(IFileFinder finder, IExampleToCodeConverter converter) { ... }
public void Convert(string exampleDir, string targetDir) { ... }
}
Trong thử nghiệm của tôi (bằng văn bản đầu tiên) , Tôi sẽ giả lập công cụ tìm và chuyển đổi. Sau đó, tôi sẽ khai báo số finder.FindFiles("*.markdown")
để trả lại số ["file1", "file2"]
và kiểm tra converter.Convert("file1", targetDir)
và converter.Convert("file2", targetDir)
đã được gọi.
Trường hợp tôi đấu tranh áp dụng điều này với Ruby là Ruby có xu hướng sử dụng các khối và trình lặp nội bộ (ví dụ: array.each { |x| puts x }
) và bao gồm các mô-đun trên trình tạo hàm tạo. Tôi không chắc chắn về làm thế nào để kiểm tra đơn vị mã trong những trường hợp (mà không cần thiết lập một bài kiểm tra tích hợp đầy đủ), và cách tiếp cận NET chỉ có vẻ vô cùng un-rubyish; nó dường như chống lại cách Ruby tự nhiên hoạt động.
Bất kỳ đề xuất nào về cách thực hiện điều này theo cách của Ruby? Một ví dụ về một thử nghiệm Ruby cho ví dụ này sẽ là tuyệt vời.
Bằng cách "viết lại nội dung đó trong bài kiểm tra", bạn có ý nghĩa là bản vá Dir-chan không? –