【问题标题】:Saving return value of a Expectation保存期望的返回值
【发布时间】:2012-04-04 17:14:33
【问题描述】:

我想使用一个期望的返回值来增加一个期望。 我有一个 m_accountProcessor 对象,它具有接口 createAccount 来创建一个新帐户并返回一个 Account 对象。 我想保存这个对象并将其添加到编码函数调用的另一个期望中。如何保存值?

       m_context.checking(new Expectations() {{

        one(m_accountProcessor).createAccount(CUSTOMER_DETAILS);
        //How can I save the return value of createAccount's Account object
         one(m_accountProcessor).encode(/*AccountObject*/);
       }}

【问题讨论】:

    标签: jmock expectations


    【解决方案1】:

    不要忘记,您不是在调用真实帐户处理器,而是在模仿它的行为。在测试中创建一个account对象,可以使用

    will(returnValue(account));
    

    子句,并期望将其传递回帐户处理器进行编码。

    额外问题,您为什么要从帐户处理器中取出一个对象,然后将其传回进行编码?

    【讨论】:

    • 如我所说,在测试中创建一个帐户对象。您可以从 createAccount 期望返回,然后您可以检查是否将相同的对象传递给编码调用。你还没有回答奖金问题:)
    • 我需要在我的表中存储帐户 id 和编码 id,以避免每次需要计算 cpu 密集型编码 id。
    • 那么我也许编码和帐户创建应该属于不同的对象,因为它们做不同的工作?
    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多