1.初步掌握單元測試和TDD
2.理解並掌握面向對象三要素:封裝、繼承、多態
3.初步掌握UML建模
4.熟悉S.O.L.I.D原則
5.瞭解設計模式編程
對於單元測試中單元的含義,通常來講,要根據實際狀況去斷定其具體含義,如Java裏單元指一個類。編程是智力活動,不是打字,編程前要把幹什麼、如何幹想清楚才能把程序寫對、寫好。與目前很多同窗一說編程就打開編輯器寫代碼不一樣,我但願同窗們養成一個習慣,當大家想用程序解決問題時,要會寫三種碼:設計模式
src
目錄中,把測試代碼放在test
目錄中,右鍵單擊項目,在彈出的菜單中選擇New->Directory
新建一個目錄:import org.junit.Test; import junit.framework.TestCase; public class MyUtilTest extends TestCase { @Test public void testNormal() { assertEquals("不及格", MyUtil.percentage2fivegrade(55)); assertEquals("及格", MyUtil.percentage2fivegrade(65)); assertEquals("中等", MyUtil.percentage2fivegrade(75)); assertEquals("良好", MyUtil.percentage2fivegrade(85)); assertEquals("優秀", MyUtil.percentage2fivegrade(95)); } }
運行結果以下
編輯器
咱們增長一個測試異常狀況的用例testException
和一個測試邊界狀況的用例testBoundary
函數
import org.junit.Test; public class ComplexNumberTest { @Test public void TestFunction1() { ComplexNumber complexnumber = new ComplexNumber(1, 3); ; assert complexnumber.m_dRealPart == 1 : "ComplexNumber(double r,double I)構造函數有錯誤"; assert complexnumber.m_dImaginPart == 3 : "ComplexNumber(double r,double I)構造函數有錯誤"; } @Test public void TestFunction2() { ComplexNumber complexnumber = new ComplexNumber(); assert complexnumber.m_dImaginPart == 0 : "ComplexNumber()構造函數有錯誤"; assert complexnumber.m_dRealPart == 0 : "ComplexNumber()構造函數有錯誤"; } @Test public void TestSetWay() { ComplexNumber complexnumber = new ComplexNumber(); complexnumber.SetRealPart(1); complexnumber.SetImaginaryPart(1); assert complexnumber.m_dRealPart == 1 : "SetRealPart方法有錯誤"; assert complexnumber.m_dImaginPart == 1 : "SetImaginaryPart方法有錯誤"; } @Test public void TestgetWay() { ComplexNumber complexnumber = new ComplexNumber(); complexnumber.SetRealPart(2); complexnumber.SetImaginaryPart(5); assert complexnumber.GetRealPart() == 2 : "GetRealPart方法有錯誤"; assert complexnumber.GetImaginaryPart() == 5 : "GetImaginaryPart方法有錯誤"; } @Test public void TestStringWay() { ComplexNumber complexnumber = new ComplexNumber(2,6); assert complexnumber.toString()=="2.0+6.0i":"toString方法有錯誤"; } @Test public void TestAddWay1() { ComplexNumber complexnumber1 = new ComplexNumber(1,1); ComplexNumber complexnumber2 = new ComplexNumber(2,2); ComplexNumber complexnumber3=complexnumber1.ComplexAdd1(complexnumber2); assert complexnumber3.m_dRealPart == 3 : "ComplexAdd方法有錯誤"; assert complexnumber3.m_dImaginPart == 3 : "ComplexAdd方法有錯誤"; } @Test public void TestAddWay2() { ComplexNumber complexnumber1 = new ComplexNumber(1,1); ComplexNumber complexnumber2=complexnumber1.ComplexAdd2(2); assert complexnumber2.m_dRealPart == 3 : "ComplexAdd方法有錯誤"; assert complexnumber2.m_dImaginPart == 1 : "ComplexAdd方法有錯誤"; } @Test public void TestMinusWay1() { ComplexNumber complexnumber1 = new ComplexNumber(1,1); ComplexNumber complexnumber2 = new ComplexNumber(2,2); ComplexNumber complexnumber3=complexnumber2.ComplexMinusl(complexnumber1); assert complexnumber3.m_dRealPart == 1 : "ComplexMinus方法有錯誤"; assert complexnumber3.m_dImaginPart == 1 : "ComplexMinus方法有錯誤"; } @Test public void TestMinusWay2() { ComplexNumber complexnumber1 = new ComplexNumber(5,1); ComplexNumber complexnumber2=complexnumber1.ComplexMinus2(1); assert complexnumber2.m_dRealPart == 4 : "ComplexMinus方法有錯誤"; assert complexnumber2.m_dImaginPart == 1 : "ComplexMinus方法有錯誤"; } @Test public void TestMultiWay1() { ComplexNumber complexnumber1 = new ComplexNumber(3,3); ComplexNumber complexnumber2 = new ComplexNumber(3,5); ComplexNumber complexnumber3=complexnumber1.ComplexMultil(complexnumber2); assert complexnumber3.m_dRealPart == -6 : "ComplexMinus方法有錯誤"; assert complexnumber3.m_dImaginPart == 24 : "ComplexMinus方法有錯誤"; } @Test public void TestMultiWay2() { ComplexNumber complexnumber1 = new ComplexNumber(3,3); ComplexNumber complexnumber2=complexnumber1.ComplexMulti2(2); assert complexnumber2.m_dRealPart == 6 : "ComplexMinus方法有錯誤"; assert complexnumber2.m_dImaginPart == 6 : "ComplexMinus方法有錯誤"; } }
public class ComplexNumber { public double m_dRealPart; public double m_dImaginPart; public ComplexNumber(){ this.m_dImaginPart=0; this.m_dRealPart=0; } public ComplexNumber(double r,double I){ this.m_dRealPart=r; this.m_dImaginPart=I; } public double GetRealPart(){ return this.m_dRealPart; } public double GetImaginaryPart(){ return this.m_dImaginPart; } public void SetRealPart(double d) { this.m_dRealPart=d; } public void SetImaginaryPart(double d) { this.m_dImaginPart=d; } public ComplexNumber ComplexAdd1(ComplexNumber c){ this.m_dRealPart=this.m_dRealPart+c.m_dRealPart; this.m_dImaginPart=this.m_dImaginPart+c.m_dImaginPart; return this; } public ComplexNumber ComplexAdd2(double c){ this.m_dRealPart=this.m_dRealPart+c; return this; } public ComplexNumber ComplexMinusl(ComplexNumber c){ this.m_dRealPart=this.m_dRealPart-c.m_dRealPart; this.m_dImaginPart=this.m_dImaginPart-c.m_dImaginPart; return this; } public ComplexNumber ComplexMinus2(double c){ this.m_dRealPart=this.m_dRealPart-c; return this; } public ComplexNumber ComplexMultil(ComplexNumber c){ double a=this.m_dImaginPart; double b=this.m_dRealPart; this.m_dRealPart=b*c.m_dRealPart-(a*c.m_dImaginPart); this.m_dImaginPart=b*c.m_dImaginPart+a*c.m_dRealPart; return this; } public ComplexNumber ComplexMulti2(double c){ double a=this.m_dImaginPart; double b=this.m_dRealPart; this.m_dRealPart=this.m_dRealPart*c; this.m_dImaginPart=this.m_dImaginPart*c; return this; } public String toString(){ return this.m_dRealPart+"+"+this.m_dImaginPart+"i"; } }
實驗結果截圖
單元測試
string語法有誤調整以下
測試