JustMock安排不工作

时间:2017-04-11 13:52:20

标签: c# unit-testing model-view-controller mocking justmock

确定,

刚拿到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对象设置为上面创建的模拟对象。这是我应该期待的吗?

我得到的是一个没有数据的实例化对象。

0 个答案:

没有答案