2017-02-14 77 views
1

,因为这种方法来测试这些样的方法是在运行时执行的是有需要对其进行测试有没有办法使用的Mockito

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

正如在另一个问题中提到的:你的命名模式是**不是**标准的java;你应该在那里做一些学习。 – GhostCat

回答

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_ButtonCancel_Button在您的测试。

2

您可能在这里甚至不需要Mocking框架。

如果您有权访问按钮;你可以简单地调用该方法;并且之后声明每个按钮在其ActionListener列表中都有该新侦听器。

换句话说:你模拟的事情时对象很难建立在你的单元测试环境。例如:某些想要与数据库交谈的客户可能需要嘲笑;但一个简单的JButton ...可能不是。

请理解:嘲笑框架始终是第二的选择。如果可能的话,你想直接在生产代码元素上声明/验证。因此,不要模拟按钮,而应关注能够使用real按钮运行测试,并使用它们提供的接口来验证预期行为。