साथ पहले और दूसरे समय को महत्व देता है मैं इस तरह एक परीक्षण है:अलग वापसी Moq
[TestCase("~/page/myaction")]
public void Page_With_Custom_Action(string path) {
// Arrange
var pathData = new Mock<IPathData>();
var pageModel = new Mock<IPageModel>();
var repository = new Mock<IPageRepository>();
var mapper = new Mock<IControllerMapper>();
var container = new Mock<IContainer>();
container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object);
repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object);
pathData.Setup(x => x.Action).Returns("myaction");
pathData.Setup(x => x.Controller).Returns("page");
var resolver = new DashboardPathResolver(pathData.Object, repository.Object, mapper.Object, container.Object);
// Act
var data = resolver.ResolvePath(path);
// Assert
Assert.NotNull(data);
Assert.AreEqual("myaction", data.Action);
Assert.AreEqual("page", data.Controller);
}
GetPageByUrl मेरी dashboardpathresolver में दो बार चलाता है, मैं कैसे बता सकते हैं Moq अशक्त पहली बार और pageModel.Ojbect वापस जाने के लिए दूसरा?
जब मैं ऐसा करता हूं तो मुझे शून्य मिल जाता है: var pageModel = new Mock(); आईपेज मॉडल मॉडल = शून्य; । repository.Setup (x => x.GetPageByUrl (पथ)) रिटर्न्स (() => मॉडल) .Callback (() => { मॉडल = pageModel.Object; }); –
Marcus
क्या GetPageByUrl को हलकर्ता के भीतर दो बार बुलाया जाता है। ResolvePath विधि? – Dan
हां इसे दो बार – Marcus