MyUtil
的測試類以後,TestCase
是紅色的,可是沒有找到junit.jar
包的地方解決方法:java
Dependencies
,單擊右上角的+,而後選擇第一個JARs or directories
junit-4.12 jar
、 junit.jar
junit-4.12 jar
、 junit.jar
兩項,並點擊下方Ok並非產品代碼的問題,而是測試代碼的問題。程序員
@Test public void testcharAt(){ assertEquals("S",buffer.charAt(0)); } @Test public void testcapacity(){ assertEquals("28",buffer.capacity()); } @Test public void testindexof(){ assertEquals("1",buffer.indexOf("tring")); }
"S" "28" 「1」是錯誤的編程
正確代碼:app
@Test public void testcharAt(){ assertEquals('S',buffer.charAt(0)); } @Test public void testcapacity(){ assertEquals(28,buffer.capacity()); } @Test public void testindexof(){ assertEquals(1,buffer.indexOf("tring")); }
題目要求:測試用例(正常狀況,錯誤狀況,邊界狀況)都經過編程語言
產品代碼:ide
/** * Created by CaoGe on 2018/4/14. */ public class MyUtil{ public static String percentage2fivegrade(int grade){ //若是成績小於0,轉成「錯誤」 if ((grade < 0)) return "錯誤"; //若是成績小於60,轉成「不及格」 else if (grade < 60) return "不及格"; //若是成績在60與70之間,轉成「及格」 else if (grade < 70) return "及格"; //若是成績在70與80之間,轉成「中等」 else if (grade < 80) return "中等"; //若是成績在80與90之間,轉成「良好」 else if (grade < 90) return "良好"; //若是成績在90與100之間,轉成「優秀」 else if (grade <= 100) return "優秀"; //若是成績大於100,轉成「錯誤」 else return "錯誤"; } }
測試代碼:函數
import junit.framework.TestCase; import org.junit.Test; /** * Created by CaoGe on 2018/4/14. */ 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)); } @Test public void testException(){ assertEquals("不及格",MyUtil.percentage2fivegrade(55)); assertEquals("不及格",MyUtil.percentage2fivegrade(55)); } @Test public void testBoundary(){ assertEquals("不及格",MyUtil.percentage2fivegrade(0)); assertEquals("及格",MyUtil.percentage2fivegrade(60)); assertEquals("中等",MyUtil.percentage2fivegrade(70)); assertEquals("良好",MyUtil.percentage2fivegrade(80)); assertEquals("優秀",MyUtil.percentage2fivegrade(90)); assertEquals("優秀",MyUtil.percentage2fivegrade(100)); } }
運行截圖:單元測試
產品代碼:學習
public class StringBufferExercise { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); } }
測試代碼:測試
import junit.framework.TestCase; import org.junit.Test; public class StringBufferExerciseTest extends TestCase { StringBuffer buffer = new StringBuffer("StringBuffer"); @Test public void testcharAt(){ assertEquals('S',buffer.charAt(0)); } @Test public void testcapacity(){ assertEquals(28,buffer.capacity()); } @Test public void testindexof(){ assertEquals(1,buffer.indexOf("tring")); } @Test public void testtoString(){ assertEquals("StringBuffer",buffer.toString()); } }
運行截圖:
題目要求:讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確。
產品代碼以下:
import java.util.Objects; abstract class Data { abstract public void DisplayValue(); } class Byte extends Data { byte value1; byte value2; Byte() { value1=53; value2=12; } public void DisplayValue(){ System.out.println (value1); System.out.println (value2); } } // Pattern Classes abstract class Factory { abstract public Data CreateDataObject(); } class ByteFactory extends Factory { public Data CreateDataObject(){ return new Byte(); } } //Client classes class Document { Data data; Document(Factory factory){ data = factory.CreateDataObject(); } public void DisplayData(){ data.DisplayValue(); } } public class MyDoc { static Document d; MyDoc(Document d) { this.d = d; } public static void main(String[] args) { d = new Document(new ByteFactory()); d.DisplayData(); } }
運行截圖以下:
要求以下:
// 定義屬性並生成getter,setter double RealPart; double ImagePart; // 定義構造函數 public Complex() public Complex(double R,double I) //Override Object public boolean equals(Object obj) public String toString() // 定義公有方法:加減乘除 Complex ComplexAdd(Complex a) Complex ComplexSub(Complex a) Complex ComplexMulti(Complex a) Complex ComplexDiv(Complex a)
產品代碼:
public class Complex{ private double r; private double i; public Complex(double r, double i) { this.r = r; this.i = i; } public static double getRealPart(double r) { return r; } public static double getImagePart(double i) { return i; } public Complex ComplexAdd(Complex c) { return new Complex(r + c.r, i + c.i); } public Complex ComplexSub(Complex c) { return new Complex(r - c.r, i - c.i); } public Complex ComplexMulti(Complex c) { return new Complex(r * c.r - i * c.i, r * c.i + i * c.r); } public Complex ComplexDiv(Complex c) { return new Complex((r * c.i + i * c.r)/(c.i * c.i + c.r * c.r), (i * c.i + r * c.r)/(c.i * c.i + c.r * c.r)); } public String toString() { String s = " "; if (i > 0) s = r + "+" + i + "i"; if (i == 0) s = r + ""; if (i < 0) s = r + " " + i + "i"; return s; } }
測試代碼:
import junit.framework.TestCase; import org.junit.Test; public class ComplexTest extends TestCase { Complex c1 = new Complex(0, 3); Complex c2 = new Complex(-1, -1); Complex c3 = new Complex(2,1); @Test public void testgetRealPart() throws Exception { assertEquals(-1.0, Complex.getRealPart(-1.0)); assertEquals(5.0, Complex.getRealPart(5.0)); assertEquals(0.0, Complex.getRealPart(0.0)); } @Test public void testgetImagePart() throws Exception { assertEquals(-1.0, Complex.getImagePart(-1.0)); assertEquals(5.0, Complex.getImagePart(5.0)); assertEquals(0.0, Complex.getImagePart(0.0)); } @Test public void testComplexAdd() throws Exception { assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString()); assertEquals("2.0+4.0i", c1.ComplexAdd(c3).toString()); assertEquals("1.0", c2.ComplexAdd(c3).toString()); } @Test public void testComplexSub() throws Exception { assertEquals("1.0+4.0i", c1.ComplexSub(c2).toString()); assertEquals("-2.0+2.0i", c1.ComplexSub(c3).toString()); assertEquals("-3.0 -2.0i", c2.ComplexSub(c3).toString()); } @Test public void testComplexMulti() throws Exception { assertEquals("3.0 -3.0i", c1.ComplexMulti(c2).toString()); assertEquals("-3.0+6.0i", c1.ComplexMulti(c3).toString()); assertEquals("-1.0 -3.0i", c2.ComplexMulti(c3).toString()); } @Test public void testComplexComplexDiv() throws Exception { assertEquals("-1.5 -1.5i", c1.ComplexDiv(c2).toString()); assertEquals("1.2+0.6i", c1.ComplexDiv(c3).toString()); assertEquals("-0.6 -0.6i", c2.ComplexDiv(c3).toString()); } }
運行截圖:
我對第三個實驗畫了UML圖
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 2h | 16% |
設計 | 1h | 8% |
代碼實現 | 2h | 16% |
測試 | 2h | 16% |
分析總結 | 3h | 25% |