我正在学习Moq,我想模拟一个ISecureAsset接口,它有一个属性Contexts,它返回一个SecurityContexts列表。我正在另一个访问Contexts属性进行授权的类上测试一个方法。
public interface ISecureAsset {
List<SecurityContext> Contexts { get; set; }
}
我如何使用Moq执行此操作?我希望能够在上下文列表中设置值。
答案 0 :(得分:4)
只需设置该属性即可返回一个虚假的SecurityContexts列表。
var mockAsset = new Mock<ISecureAsset>();
var listOfContexts = new List<SecurityContext>();
//add any fake contexts here
mockAsset.Setup(x => x.Contexts).Returns(listOfContexts);
Moq quickstart guide可能对您有所帮助。
答案 1 :(得分:3)
var mockSecureAsset = new Mock<ISecureAsset>();
mockSecureAsset.SetupGet(sa => sa.Contexts).Return(new List<SecurityContext>());
或
mockSecureAsset.SetupProperty(sa => sa.Contexts);
mockSecureAsset.Object.Contexts = new List<SecurityContext>();