java EasyMock和修改可变方法参数
如何使用EasyMock修改模拟方法的可变方法参数
例如,我有一个使用BlockingQueue的类。我想模拟BlockingQueue成员进行单元测试。我的类调用方法队列。德兰托(c组)。调用此方法将从队列中删除元素并将其添加到集合中。我如何使用EasyMock模拟这种行为?举个例子就好了
你可以在下面搜索框中键入要查询的问题!
如何使用EasyMock修改模拟方法的可变方法参数
例如,我有一个使用BlockingQueue的类。我想模拟BlockingQueue成员进行单元测试。我的类调用方法队列。德兰托(c组)。调用此方法将从队列中删除元素并将其添加到集合中。我如何使用EasyMock模拟这种行为?举个例子就好了
# 1 楼答案
很难说清楚你的代码是什么样子的。如果我知道你要测试的代码,我会帮你更好。。但假设要测试的代码如下所示:
测试将是
抱歉,如果这不正确,但很难建议对我看不到的代码进行测试
编辑-我们不能断言可变参数会因为我们如何使用mock而改变。我们所能做的就是断言drainTo方法被调用。如果德兰托做了我们想做的事情,就必须在其他地方进行测试。。i、 e.在阻塞队列的测试中。阶级
编辑2-我们可以更具体地说明我们希望用什么列表调用该方法
# 2 楼答案
您可以使用andAnswer和getCurrentArguments:
提取帮助器类或方法有时会有所帮助:
然后你可以做:
最好使用实数
BlockingQueue
,并找到一种方法,在希望从队列中删除数据的方法之前将所需的值插入队列