2012-03-14 30 views
16

Đề cập đến câu hỏi này:Moq VerifySet (Action) thay thế biểu lỗi thời biên soạn lỗi

Moq how to replace obsolete expression

Tôi đã điều sau đây:

[Test] 
public void OnSearchRequest_ViewFiresEvent_EventIsHandled() 
{ 
    // Arrange 
    Mock<IViewUsers> view = new Mock<IViewUsers>(); 
    Users users = new Users(view.Object); 

    // Act 
    view.Raise(v => v.SearchForUsers += null, this, new SearchEventArgs()); 

    // Assert 
    view.VerifySet(v=> v.SearchResult = It.IsAny<List<IUser>>()); 

} 

ban đầu tôi đã:

 // Assert 
     view.VerifySet(v => v.SearchResult); 

Nhưng đã nhận được cảnh báo:

'Moq.MockExtensions.VerifySet (Moq.Mock, System.Linq.Expressions.Expression>)' là lỗi thời: 'thay thế bởi VerifySet (Action)'

Vì vậy, tôi tìm thấy các câu hỏi tham chiếu ở trên, và thay đổi nó cho phù hợp, nhưng bây giờ tôi vẫn nhận được cảnh báo rằng, và trên hết, một lỗi khó vào "v.SearchResult" trong cuộc gọi đến VerifySet:

một cây biểu hiện có thể không chứa toán tử gán.

Tôi không thể thấy rằng tôi đang định dạng không chính xác - vậy tại sao không nhận ra đây là hành động như câu hỏi khác ngụ ý?

+0

Bạn đang sử dụng phiên bản Moq nào? Bởi vì tôi đã tạo ra một repro nhỏ với 4.0.10827.0 và nó là màu xanh lá cây và biên dịch mà không có cảnh báo lỗi thời ... Bạn nên cung cấp thêm ngữ cảnh như thế nào các lớp học trong thử nghiệm của bạn trông như thế nào. – nemesv

+0

moq 4.0.10827.0 –

+0

Bạn muốn thêm ngữ cảnh nào? –

Trả lời

0

Tôi không biết điều đó có hữu ích hay không, nhưng tôi đã gặp sự cố trong quá khứ bằng cách sử dụng It.IsAny<> với danh sách. Bạn có thể thử một cái gì đó như It.Is<List<IUser>>(l => l != null)?

1

Tôi đã tìm thấy thứ gì đó tương đối gần với những gì bạn đang hỏi. Moq how to replace obsolete expression Tôi không biết điều này có hữu ích không vì tôi chỉ sử dụng mock.Setupmock.Verify.

Cũng như đã đề cập trước khi thử sử dụng các biểu thức lambda trong số It.IsAny để xác định những thứ nhỏ hơn theo cách này. Nếu xác minh không thành công, bạn biết chính xác vị trí không thành công. Đặc biệt là nếu bạn đang mong đợi một giá trị ở một vị trí nhất định chẳng hạn.

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