确定,
刚拿到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语句都没有错误。
当我调用控制器方法Option时,代码片段:
public ActionResult Option(int id)
{
var parcel = _landService.Get(id);
...
...
}
我期待JustMock将parcel对象设置为上面创建的模拟对象。这是我应该期待的吗?
我得到的是一个没有数据的实例化对象。