java – 单元测试同步

请考虑以下方法:

/**
 * Set whether messages are printed to System.out.     * 
 * @param printOutput True to print, false for silent logging
 */
public void setPrintOutput(boolean printOutput) {
   // Synchronize to messages because this field is used when a message is received
   synchronized (messages) {
      this.printOutput = printOutput;
   }
}

此方法是涉及消息的一组方法的一部分,因此我想编写一个测试,检查此方法是否在消息上同步.有谁知道我会怎么做?

解决方法:

我认为这超出了单元测试的范围,因为整个同步点是在两段远程代码之间提供某种类型的连接.

您可以测试它的行为方式,消息为null且不为null,这样就可以完全覆盖.它不会说明您的同步在语义上是否正确.

上一篇:关于书籍示例的问题 – 实践中的Java并发,清单4.12


下一篇:java – 每次触发侦听器时,我的侦听器实现是否正在创建一个新数组?