Java 有没有办法用mockito测试这类方法

Java 有没有办法用mockito测试这类方法,java,junit,mockito,Java,Junit,Mockito,因为这个方法是在运行时执行的,所以需要对它进行测试吗 public void addListener(RepeatRejectAnalysis_Listener rralistener) { Save_Button.addActionListener(rralistener); Cancel_Button.addActionListener(rralistener); } 一般来说,它不觉得有必要测试这种类型的方法,因为没有业务逻辑 但是,如果您急于这样做,可以检查是否为具有相

因为这个方法是在运行时执行的,所以需要对它进行测试吗

public void addListener(RepeatRejectAnalysis_Listener rralistener)
{
    Save_Button.addActionListener(rralistener);
    Cancel_Button.addActionListener(rralistener);
}

一般来说,它不觉得有必要测试这种类型的方法,因为没有业务逻辑

但是,如果您急于这样做,可以检查是否为具有相同输入参数的两个不同对象调用了
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_按钮
Cancel_按钮

您甚至不需要模拟框架

如果您可以访问您的按钮;您可以简单地调用该方法;然后,断言每个按钮在其ActionListener列表中都有一个新的侦听器

换句话说:当对象在单元测试环境中很难创建时,您只能模拟对象。例如:一些想要与数据库对话的客户机可能需要模拟;但是一个简单的按钮。。。可能不会


请理解:模仿框架总是第二选择。如果可能,您希望直接在生产代码元素上断言/验证。因此,不要模仿按钮,而是要专注于能够使用real按钮运行测试,并使用这些按钮提供的接口来验证预期行为。

如另一个问题中所述:您的命名模式不是标准java;你应该在那里学习。