【问题标题】:Mockito / PowerMocktio doNothing for none void methodMockito / PowerMocktio doNothing for none void 方法
【发布时间】:2014-09-21 00:04:51
【问题描述】:

我需要一个在测试期间调用时返回什么都不做的方法,拥有该方法的类实例被实现为间谍。

我知道 doNothing() 方法仅适用于 void 方法。有没有办法通过返回某些东西的方法获得相同的行为?

谢谢!

【问题讨论】:

    标签: java unit-testing junit mockito powermock


    【解决方案1】:

    使用when(spy.myMethod()).thenReturn(null)。这将阻止间谍调​​用包装的实例。您必须告诉 Mockito 为返回某些内容的方法返回什么。 mock 的默认行为是返回 nullspy 的默认行为是调用包装对象。当您 stub spy 中的方法时,它会阻止对包装对象的调用并执行指定的行为。

    根据Spy的文件,你也可以做doReturn(null).when(spy).myMethod();

    【讨论】:

    • 是的,这行得通!简直不敢相信这是多么简单:)
    • 请注意,when(spy.myMethod()).thenReturn(null) 对间谍不起作用(在一般情况下,可能在特定情况下),因为此时将执行该方法的实际实现。一般规则是必须始终使用doXyz().when(spy).method() 语法对间谍进行存根,以防止意外执行实际代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多