使用Java帮助实际的TDD

前端之家收集整理的这篇文章主要介绍了使用Java帮助实际的TDD前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我现在正在寻求帮助,将TDD用作真实世界的例子.大多数节目过于简单,并没有真正展示如何测试和重新考虑更复杂的类.以下是使用线程和网络套接字的代码示例.有人可以解释如何为这样的类创建一个独立的单元测试吗?谢谢.

public class BaseHandler  extends Thread {
  protected Socket mClientSocket;
  protected BufferedReader is = null;
  protected BufferedWriter os = null;
  private Logger mLogger = Logger.getLogger(WebTestController.class.getName());
  protected WebTestController mWebTestController;

  /*********************************************************************
   * 
   * @param piPort - int port to listen on
   */
  public BaseHandler(){
  }


  /*********************************************************************** cleanup
   * Ensure sockets are closed as to not run into bind errors
   */
  protected void cleanup() {
    try {
      if (is != null)
        is.close();
      if (os != null)
        os.close();
      if (mClientSocket != null)
        mClientSocket.close();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    mLogger.info("cleaning up a socket");
  }

  /***********************************************************************************
   * Sends a message to the current socket
   * @param pMessage
   */
  protected void writeToSocket(String pMessage){
      try {
          os = new BufferedWriter(
            new OutputStreamWriter(mClientSocket.getOutputStream()));

        }
        catch (IOException e) {
          e.printStackTrace();
          cleanup();
          return;
        }
        try {
            os.write(pMessage,pMessage.length());
            os.flush();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        cleanup();
  }

}
最佳答案
以下是一些减少测试问题的实际操作:

>不要让你的类继承Thread.改为使其成为Runnable,因为您可以单独测试Runnable.
>使用dependency injection,以便可以用测试版本替换Logger和WebTestController(请参阅“模拟”).
>从您的代码删除任何尚未执行任何操作的内容.然后测试你拥有的东西.只有当您实施的所有内容都正常工作且具有有效测试证明时,才添加内容

但是我强烈建议您阅读一本关于TDD和单元测试的好书.简单的教程就是这么简单.它们不包括您将在现实生活中遇到的复杂案例.在现实生活中使用TDD是完全可能的,但它确实需要一些知识 – 就像编程一样.

猜你在找的Java相关文章