<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      JUNIT測試通過的HelloWorld

      [摘要]把我剛測試成功的例子(3分鐘前)記錄下來放在這里,希望會對剛開始研究Junit的朋友有點幫助。 到jakarta當一份apache-ant安裝到你的系統上,并把ant/bin加到系統變量path中,...
      把我剛測試成功的例子(3分鐘前)記錄下來放在這里,希望會對剛開始研究Junit的朋友有點幫助。

      到jakarta當一份apache-ant安裝到你的系統上,并把ant/bin加到系統變量path中,使你的ant命令可以在任何地方被調用。
      當一份junit3.8.1安裝到你的系統上(解壓縮,把junit.jar加到系統變量classpath中)。

      建立測試目錄JunitTest
      把java文件,統一放到JunitTest/src目錄,根據package建與之相關的目錄.
      文件1:

      HelloWorld.java

      package com.company;

      public class HelloWorld {
      public String sayHello() {
      return "Hello World!";
      }

      public static void main( String[] args ) {
      HelloWorld world = new HelloWorld();
      System.out.println(world.sayHello());
      }
      }



      文件2:

      AllJunitTests.java

      package test.com.company;

      import junit.framework.Test;
      import junit.framework.TestCase;
      import junit.framework.TestSuite;

      public class AllJunitTests extends TestCase{
      public AllJunitTests(String name){
      super(name);
      }

      public static Test suite(){
      TestSuite suite = new TestSuite();
      //TestSuite suite = new TestSuite();
      suite.addTestSuite(HelloWorldTest.class);

      return suite;
      }
      }


      文件3:


      HelloWorldTest.java

      package test.com.company;

      import com.company.HelloWorld;
      import junit.framework.TestCase;
      import junit.framework.AssertionFailedError;
      import junit.framework.Assert;


      /**
      * JUnit 3.8.1 testcases for HelloWorld
      */
      public class HelloWorldTest extends TestCase {

      public HelloWorldTest(String name) {
      super(name);
      }

      public static void main(String args[]) {
      junit.textui.TestRunner.run(HelloWorldTest.class);
      }

      public void testSayHello() {
      HelloWorld world = new com.company.HelloWorld();
      assertEquals("Hello World!", world.sayHello() );
      }
      }



      我的build.xml放到JunitTestuild,構造這個文件才可以使用ant命令來執行,包括編譯、打包、測試junit用例

      <?xml version="1.0" encoding="UTF-8" ?>

      <project name="anita" default="main" basedir="../">
      <property name="app.name" value="sayhello" />
      <property name="build.dir" value="build/classes" />

      <target name="JUNIT">
      <available property="junit.present" classname="junit.framework.TestCase" />
      </target>

      <target name="compile" depends="JUNIT">
      <mkdir dir="${build.dir}"/>
      <javac srcdir="src/" destdir="${build.dir}" >
      <include name="**/*.java"/>
      </javac>
      </target>

      <target name="jar" depends="compile">
      <mkdir dir="build/lib"/>
      <jar jarfile="build/lib/${app.name}.jar"
      basedir="${build.dir}" includes="com/**"/>
      </target>

      <target name="compiletests" depends="jar">
      <mkdir dir="build/testcases"/>
      <javac srcdir="src/test" destdir="build/testcases">
      <classpath>
      <pathelement location="build/lib/${app.name}.jar" />
      <pathelement path="" />
      </classpath>
      <include name="**/*.java"/>
      </javac>
      </target>

      <target name="runtests" depends="compiletests" if="junit.present">
      <java fork="yes" classname="junit.textui.TestRunner"
      taskname="junit" failonerror="true">
      <arg value="test.com.company.AllJunitTests"/>
      <classpath>
      <pathelement location="build/lib/${app.name}.jar" />
      <pathelement location="build/testcases" />
      <pathelement path="" />
      <pathelement path="${java.class.path}" />
      </classpath>
      </java>
      </target>
      </project>



      如果是win系統,在DOS窗口下進入你的工作目錄,并到 ../JunitTest/build下,執行ant runtests命令,會看到如下信息

      D:TEMPJunitTestTestCaseuild>ant runtests
      Buildfile: build.xml

      JUNIT:

      compile:
      [mkdir] Created dir: D:TEMPJunitTestTestCaseuildclasses
      [javac] Compiling 3 source files to D:TEMPJunitTestTestCaseuildclasses


      jar:
      [mkdir] Created dir: D:TEMPJunitTestTestCaseuildlib
      [jar] Building jar: D:TEMPJunitTestTestCaseuildlibsayhello.jar

      compiletests:
      [mkdir] Created dir: D:TEMPJunitTestTestCaseuild estcases
      [javac] Compiling 2 source files to D:TEMPJunitTestTestCaseuild estcas
      es

      runtests:
      [junit] .
      [junit] Time: 0

      [junit] OK (1 test)

      BUILD SUCCESSFUL
      Total time: 7 seconds


      <中間休息^_^>


      下面請把 com/company/HelloWorld.java文件中的return "Hello World!";改成return "Hello world!!",并在../JunitTest/builde目錄運行下運行ant runtests。
      我們會看到如下情形:
      ……………………………………
      ……………………………………
      runtests:
      [junit] .F
      [junit] Time: 0.01
      [junit] There was 1 failure:
      [junit] 1) testSayHello(test.com.company.HelloWorldTest)junit.framework.Comp
      arisonFailure: expected:<...World...> but was:<...world!...>
      [junit] at test.com.company.HelloWorldTest.testSayHello(Unknown Source)
      [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
      sorImpl.java:39)
      [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
      hodAccessorImpl.java:25)

      [junit] FAILURES!!!
      [junit] Tests run: 1, Failures: 1, Errors: 0
      BUILD FAILED


      我們可以看到,這是JUNIT測試用例未正常運行通過的錯誤信息。




      日韩精品一区二区三区高清