2012-04-10 30 views
10

Tôi đang cố gắng sử dụng Moq để chỉ định thuộc tính khi phương thức được gọi.Sử dụng Moq để gán giá trị thuộc tính khi phương thức được gọi là

cái gì đó dọc theo dòng:

Mock<ITimer> mock = new Mock<ITimer>(); 
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true); 

Có thể sử dụng Moq để thiết lập một giá trị bất động sản mong đợi khi một phương pháp được gọi là

+0

Chắc chắn là vậy. Tôi biết Rhino sẽ làm điều này, vì vậy nếu Moq không có gì đáng ngạc nhiên. Tôi tự tin rằng đây chỉ là một phương thức cấu hình hỗn hợp hoặc một số vấn đề sử dụng khác. Nhưng, tôi không biết Moq nên tôi sẽ để một người hiểu biết hơn thực sự trả lời câu hỏi. – KeithS

Trả lời

13

Tôi giả sử bạn đang cố gắng để về cơ bản thực hiện một cài đặt mới () trên Mock của bạn khi phương pháp được gọi? Nếu vậy, bạn sẽ có thể thực hiện điều đó bằng gọi lại, như sau:

Mock<ITimer> mock = new Mock<ITimer>(); 
mock.Setup(x=>x.Start()).Callback(() => mock.SetupGet(y => y.Enabled).Returns(true)); 

Thật xấu xí, nhưng nó nên thực hiện thủ thuật.

+2

Cảm ơn đã làm nó mặc dù tôi đã đi với mock.Setup (x => x.Start()). Callback (() => mock.Setup (x => x.Enabled). Return (true)); – Jon

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