为什么我收到此错误消息:预期 #1,实际 #0? [英] Why I got this error message: Expected #1, Actual #0?

查看:52
本文介绍了为什么我收到此错误消息:预期 #1,实际 #0?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么以下使用 Rhino Mocks 的测试代码会引发此异常:预期 #1,实际 #0?

Why the following test code using Rhino Mocks raises this exception: Expected #1, Actual #0 ?

    int PRODUCT_ID = 1;
    [TestMethod]
    public void If_Cart_Already_Exists_Then_AddToBasket_Should_Use_It_ByCallingIShoppingCartGetCart() 
    {
        ShoppingCart cart = new ShoppingCart();  //without UserName as ctor parameter

        IShoppingCartRepository shoppingCartRepository = MockRepository.GenerateMock<IShoppingCartRepository>();
        shoppingCartRepository.Expect(r => r.GetCart()).Return(cart);

        ShoppingCartController c = new ShoppingCartController(shoppingCartRepository); //DI
        c.AddToCart(PRODUCT_ID);//interAct

        shoppingCartRepository.VerifyAllExpectations(); //Error: IShoppingCartRepository.GetCart(); Expected #1, Actual #0.
    }

推荐答案

可能是因为期待购物车对象的返回.

Probably because expecting returning of cart object.

也许您可以使用 Stub 而不是 Expect 并使用 AssertWasCalled 进行验证.

Maybe you may use Stub instead of Expect and verify using AssertWasCalled.

public void If_Cart_Already_Exists_Then_AddToBasket_Should_Use_It_ByCallingIShoppingCartGetCart() 
{
    ShoppingCart cart = new ShoppingCart();  //without UserName as ctor parameter

    IShoppingCartRepository shoppingCartRepository = MockRepository.GenerateMock<IShoppingCartRepository>();
    shoppingCartRepository.Stub(r => r.GetCart()).Return(cart);

    ShoppingCartController c = new ShoppingCartController(shoppingCartRepository); //DI
    c.AddToCart(PRODUCT_ID);//interAct

    shoppingCartRepository.AssertWasCalled(r => r.GetCart());
}

这篇关于为什么我收到此错误消息:预期 #1,实际 #0?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆