由于此方法在运行时执行,因此需要对其进行测试
public void addListener(RepeatRejectAnalysis_Listener rralistener)
{
Save_Button.addActionListener(rralistener);
Cancel_Button.addActionListener(rralistener);
}
答案 0 :(得分:2)
你可能甚至不需要Mocking框架。
如果您可以访问按钮;你可以简单地调用那个方法;然后断言每个按钮在其ActionListeners列表中都有新的侦听器。
换句话说:当您在单元测试环境中创建硬对象时,仅模拟事物。例如:一些想要与数据库通信的客户端可能需要进行模拟;但是简单的JButton ......可能不是。
请理解:模拟框架始终是第二选项。如果可能,您希望直接在生产代码元素上断言/验证。因此,不要使用模拟按钮,而是专注于能够使用真实按钮运行测试,并使用这些按钮提供的接口来验证预期的行为。
答案 1 :(得分:1)
一般情况下,由于没有业务逻辑,因此不需要测试此类方法。
但是,如果您急于这样做,可以检查是否为具有相同输入参数的两个不同对象调用了addActionListener
方法。类似这样:
// SETUP SUT
RepeatRejectAnalysis_Listener yourRraListener = new RepeatRejectAnalysis_Listener();
// EXERCISE
yourClass.addListener(yourRraListener);
// VERIFY
Mockito.verify(Save_Button, Mockito.times(1)).addActionListener(yourRraListener);
Mockito.verify(Cancel_Button, Mockito.times(1)).addActionListener(yourRraListener);
在这种情况下,您需要在测试中模拟Save_Button
和Cancel_Button
。