Câu trả lời:
Các tiềm ẩn cây biểu thức API không hỗ trợ đối số tùy chọn.
Đối với mã được biên dịch IL, trình biên dịch C # sẽ chèn các giá trị mặc định tại thời gian biên dịch (mã hóa cứng), vì CLR không hỗ trợ các phương thức gọi với các đối số tùy chọn khi các đối số không được cung cấp rõ ràng.
Có cùng một thông báo khi cố gắng sử dụng Mock.setup để giả định một phương thức có nhiều tham số mặc định. Tôi chỉ cần thêm các tham số bổ sung trong lambda.
void someMethod(string arg1 = "", string arg2 = "")
mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))
It.IsAny<object>
. Về cơ bản tôi đã thiếu một tham số chosomeMethod()
x.someMethod(default,default)
... có thể được sử dụng.