2012-08-31 16 views
7

Tôi đang sử dụng Tự động trộn làm nhà máy SUT và đang gặp khó khăn khi đóng băng các phiên bản rỗng.Làm cách nào tôi có thể Cố định một trường hợp rỗng trong Tự động sửa đổi

Tôi muốn làm điều gì đó như:

_fixture.Freeze<IPayPalConfiguration>(c => null); 

nhưng nhanh chóng nhận ra rằng đó không ổn. Tôi đã giải quyết vấn đề bằng cách sử dụng:

_fixture.Inject((IMyInterface)null); 

nhưng dường như không đúng.

Hy vọng rằng ai đó sẽ đóng góp giải pháp đúng cho HiveMind.

Trả lời

6

Bên trong, Freeze tạo ra một thể hiện của các loại yêu cầu (ví dụ IPayPalConfiguration) và sau đó tiêm nó để nó sẽ luôn luôn trở lại dụ rằng khi bạn yêu cầu nó một lần nữa.

Trong trường hợp cụ thể đó, bằng cách thực hiện _fixture.Inject((IPayPalConfiguration)null) bạn chèn tham chiếu null theo cách thủ công để bạn bỏ qua phần tạo của phương thức Freeze. Bạn đóng băngIPayPalConfiguration thành một giá trị duy nhất (thực sự, tham chiếu null ở đây) nhưng theo cách thủ công.

Hãy ghi nhớ rằng _fixture.Freeze<IPayPalConfiguration>(c => null) này qua một tham chiếu null cho phương pháp rằng sẽ cố gắng giải quyết các IPayPalConfiguration và cho rằng lý do một ArgumentNullException được ném.

+0

Cảm ơn phản hồi và ít nhất xác nhận rằng tôi không làm điều sai –

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