好的,
刚拿到 JustMock 的许可证,它看起来很棒。我在安排我的第一个 MVC 控制器测试时遇到问题。
我的测试方法如下:
[TestMethod]
public void Option_Detail_Test_JustMock()
{
// Arrange
var id = 7;
var services = Telerik.JustMock.Mock.Create<IServiceResolver>();
var landService = Telerik.JustMock.Mock.Create<ILandService>();
var requestGet = DataHelper.Object1();
var requestLand = DataHelper.Object2(requestGet);
Telerik.JustMock.Mock.Arrange(() => landService.Get(Arg.AnyInt)).Returns(requestGet);
Telerik.JustMock.Mock.Arrange(() => _mapper.Map<LandOptionItemViewModel>(Arg.AnyObject)).Returns(requestLand);
var controller = new LandController(services);
// Act
ActionResult result = controller.Option(id);
// Assert
Assert.IsNotNull(result);
}
DataHelper 类只是为我构建了一些数据结构,例如:
public static class DataHelper
{
public static FirstDataContract Object1()
{
return new FirstDataContract() {
Agreements = null,
Areas = (new FirstAreaDataContract[]
{
new FirstAreaDataContract
{
Id = 1,
LandRightsTypeCode = "ABC",
LandTransactionTypeCode = "123",
NetAmount = 10
},
new FirstAreaDataContract
{
Id = 2,
LandRightsTypeCode = "XYZ",
LandTransactionTypeCode = "456",
NetAmount = 50
}
}).ToList();
}
这一切似乎工作正常。调用 Mock.Create,DataHelper 填充两个请求变量,两个 Mock.Arrange 语句都不会出错。
当我调用控制器方法选项时,代码片段:
public ActionResult Option(int id)
{
var parcel = _landService.Get(id);
...
...
}
我期待 JustMock 将 parcel 对象设置为上面创建的模拟对象。这是我应该期待的吗?
我得到的是一个没有数据的实例化对象。