Với NSubstitute, có cách nào để nắm bắt giá trị bạn chuyển đến một trình thiết lập thuộc tính không?NSubstitute chặn "setter" chỉ yêu cầu bất động sản
Ví dụ: nếu tôi có giao diện như sau:
public interface IStudent {
int Id { set; }
string Name { set; }
}
Các nói rằng tôi có thể thay thế một tạo ra ví dụ:
var _studentSub = Substitute.For<IStudent>();
Có cách nào tôi có thể đánh chặn và nắm bắt được giá trị nếu bất kỳ của "thiết lập" phương pháp thay thế được gọi?
Đối với một tài sản với get/set, bạn có thể sử dụng sub.Name = Arg.Do (x => tên = x); để nắm bắt một giá trị và vẫn sử dụng sub.Name.Returns ("MySampleName"); để trả về giá trị? 'Lợi nhuận' dường như không hoạt động đối với chúng tôi! –
bstack
Chỉ cần kiểm tra, có vẻ là một lỗi trộn Arg.Do và Returns cho cùng một thuộc tính get/set. Nó hoạt động nếu bạn chuyển Arg.Do cho When..Do. ví dụ. "sub.When (x => x.Name = Arg.Any()). Do (x => name = x.Arg ());" –
Xem [báo cáo lỗi] (https://github.com/nsubstitute/NSubstitute/issues/59) để làm việc Khi .. Ví dụ. –