首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FakeItEasy重置对象调用

FakeItEasy重置对象调用
EN

Stack Overflow用户
提问于 2013-10-30 16:07:50
回答 1查看 1.1K关注 0票数 3

我用假货很容易为我的物品制造假货。现在,我测试是否在调用的假对象上使用了一些方法。问题是,我希望每个单元测试将假状态重置回原始状态。

我需要这样做,因为我为每个单元测试类生成一次假的,所以我需要以某种方式重置调用状态。

我的代码是这样的:

代码语言:javascript
复制
    [Test]
    public void Test_Process_SampleMessageNEW_Should_Call_ISampleMessageConverter_GetRouteObject()
    {
        //Arrange
        //should reset the state of the fakes, _sampleRouteConvertor and _orderDalcMock are fakes
        _sampleRouteConvertor.BackToRecord();
        _orderDalcMock.BackToRecord();
        A.CallTo(() => _orderDalcMock.GetOrder(A<IRQOrderIDCriteria>.Ignored))
            .Returns(new OrderDTO() {Id = nextId++});
        SampleMessage sampleMessage = SampleMessageTestHelpers.GetSavedSampleMessage();
        sampleMessage.MaterialId = CacheMaterials.GetMaterials()[0].Code;
        sampleMessage.MessageType = "NEW";

        //Act
        SampleMessageProcessor sampleMessageProcessor = new SampleMessageProcessor(sampleMessage);
        sampleMessageProcessor.Process();

        //Assert
        A.CallTo(() => _sampleRouteConvertor.GetRouteObject(A<RoutineSample>.Ignored, A<List<ICacheTrackArea>>.Ignored))
            .MustHaveHappened(Repeated.Exactly.Once);
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-30 16:11:30

为什么不为每次测试建立新的假货呢?这将解决问题。

如果每次设置新的假代码是一个复杂的代码块,那么编写一个帮助函数来设置新的假代码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19688043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档