【发布时间】:2010-08-05 11:44:52
【问题描述】:
嗨, 我必须对实现 DocumentListener 接口的 Java 类进行单元测试。我们将 Eclipse 和 Junit 与 EasyMock 框架一起使用。我是单元测试的新手,因此很欣赏使用 EasyMock 的示例代码。
java类是:
public class ClassToBeTested implements DocumentListener
{
private static final Color COLOR = Color.BLUE;
/** Painter. */
private Highlighter.HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter (COLOR);
private int maxMessageSize;
private JTextComponent component;
/*** The Constructor.
* @param maxSize - The Maximum message size
*/
public ClassToBeTested(final int maxSize)
{
super();
this.maxMessageSize = maxSize;
}
/**
* Decorate the component.
* @param c - The component to decorate
*/
public final void decorate(final JTextComponent c)
{
//TODO throw exception if already decorating
this.component = c;
component.getDocument().addDocumentListener(this);
}
/**
* Remove Update.
* @param e - The event
*/
@Override
public final void removeUpdate(final DocumentEvent e)
{
handle(e);
}
/**
* Insert Update.
* @param e - The event
*/
@Override
public final void insertUpdate(final DocumentEvent e)
{
handle(e);
}
/**
* Changed Update.* @param e - The event
*/
@Override
public final void changedUpdate(final DocumentEvent e)
{
handle(e);
}
/**
* Handle the event.
* @param e - The event
*/
public void handle(final DocumentEvent e)
{
Document doc = e.getDocument();
try {
String text = e.getDocument().getText(0, doc.getLength());
if (text.length() >= maxMessageSize)
{
try
{
component.getHighlighter().addHighlight( maxMessageSize, text.length() + 1, painter);
} catch (BadLocationException ex)
{
System.out.println(ex.getMessage());
}
} else
{
component.getHighlighter().removeAllHighlights();
}
} catch (BadLocationException e1)
{
System.out.println(e1.getMessage());
}
}
}
【问题讨论】:
-
似乎与 stackoverflow.com/questions/3398504/… 重复 - 如果是这样,请编辑您的原始帖子,而不是创建骗子。
-
彼得,根据您的建议,我的问题与原来的问题有所不同,所以我不确定是开始一个新问题还是继续同一个问题,因为我没有得到任何回复。请你帮忙帮助我完成关于原始问题的最后一篇文章...
-
在这种情况下,建议以这样的方式开始您的新帖子:“在之前的帖子中,我询问了这个和这个问题;作为后续行动,现在我面临另一个问题,就是……”
标签: java unit-testing easymock