2017-05-16 12 views
6

Tôi đang cố gắng kiểm tra đơn vị chức năng cơ bản của Azure. Phương thức Run của hàm đòi hỏi một đối số TraceWriter; TraceWriter là một lớp trừu tượng và tôi không tìm thấy nhiều về tài liệu để chế nhạo sự phụ thuộc này.Kiểm thử đơn vị Azure Chức năng: Không thể tạo một thể hiện của TraceWriter, làm thế nào để giả lập?

Dưới đây là chữ ký của phương pháp Tôi đang cố gắng để kiểm tra:

public static void Run(string myQueueItem, TraceWriter log) 

Tôi chỉ đơn giản là có thể loại bỏ các TraceWriter trong khi thử nghiệm hoặc tạo ra một phương pháp Run quá tải, nhưng đó sẽ là một sự vi phạm rõ ràng các hành thử nghiệm tốt . Bất kỳ thông tin chi tiết nào về việc mô phỏng chiến lược thử nghiệm đơn vị TraceWriter và/hoặc Azure sẽ được đánh giá cao.

Trả lời

4

Chức năng Azure bây giờ có thể hỗ trợ tiêu thụ một ILogger theo chủ đề GitHub này: https://github.com/Azure/Azure-Functions/issues/293


Đề nghị của tôi sẽ là bạn nên sử dụng dụng cụ mới được hỗ trợ trong VS2017 Preview với các chức năng biên dịch sẵn để cho phép bạn cải thiện của bạn chức năng của testability. Bạn có thể bắt đầu với các công cụ mới cho chức năng Azure ở đây:

https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/

Donna Malayeri đã xuất bản một bài xuất sắc giải thích làm thế nào để sử dụng chức năng biên dịch sẵn với C#: https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/

này sẽ cho phép bạn tạo một hàm sử dụng giao diện thay vì đối tượng cụ thể. Câu trả lời là một chút hơi dài nhưng có một chủ đề tương tự ở đây với một câu trả lời tốt đẹp:

Azure Function logging using TraceWriter in external library

ILogger

+0

Hai liên kết đầu tiên là giống nhau không? – SteveC

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