20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习
實(shí)踐題目
在IDEA中以TDD的方式對(duì)String類和Arrays類進(jìn)行學(xué)習(xí)
測(cè)試相關(guān)方法的正常,錯(cuò)誤和邊界情況
String類
charAt
split
Arrays類
sort
binarySearch
課上未能及時(shí)提交的原因
對(duì)單元測(cè)試掌握不熟,在老師演示具體方法之前,自己的思路是建立一個(gè)空的MyArrays類,然后建立它的測(cè)試類MyArraysTest,在測(cè)試類中定義變量,進(jìn)行sort binarySearch操作后,再建立兩個(gè)Tester,在其中利用斷言測(cè)試結(jié)果與預(yù)期值是否相同。
經(jīng)過老師的提點(diǎn),了解到可以直接在實(shí)驗(yàn)二已有測(cè)試代碼中直接添加兩個(gè)Tester,不需要新建測(cè)試類。但在操作過程中,又出現(xiàn)了新的疑問,到底把新建測(cè)試實(shí)例、排序等準(zhǔn)備工作放在Tester內(nèi)部還是外部呢?
經(jīng)過老師的演示,我在兩個(gè)測(cè)試用例內(nèi)部建立了測(cè)試實(shí)例,并調(diào)用sort函數(shù)對(duì)實(shí)例進(jìn)行排序。
最終完成了任務(wù),但是由于自己平時(shí)是在虛擬機(jī)里編寫代碼,idea中目錄結(jié)構(gòu)與虛擬機(jī)中的不同,時(shí)間緊迫沒有在idea中clone自己的項(xiàng)目,也沒有把代碼粘貼到虛擬機(jī)里。所以最終未能將代碼及時(shí)推到碼云上。
代碼
//前面的代碼就是實(shí)驗(yàn)二中StringBufferTest的代碼,與本實(shí)踐無關(guān),所以省略
@Test
public void StringTester() {
String string="aa:30:3:5";
String[] strings=string.split(":");
assertEquals(':',string.charAt(2));
assertEquals("30",strings[1]);
}
@Test
public void ArraysTester() {
int[] arr={1,2,5,4};
Arrays.sort(arr);
assertEquals(5,arr[3]);
assertEquals(1,binarySearch(arr,2));
}
碼云鏈接
從Windows的IDEA里復(fù)制到虛擬機(jī)中的代碼格式上看著有點(diǎn)別扭,所以還是把完整代碼寫在這里方便老師檢查。
import junit.framework.TestCase;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static java.util.Arrays.binarySearch;
import static org.junit.Assert.*;
/**
* Created by dell1 on 2017/4/20.
*/
public class StringBufferDemoTest extends TestCase {
StringBuffer string1 = new StringBuffer("Beautiful");
StringBuffer string2 = new StringBuffer("Beautiful Girls");
StringBuffer string3 = new StringBuffer("Beautiful Girls and Boys");
@Test
public void testCharAt(){
assertEquals('a',string1.charAt(2));
assertEquals(' ',string2.charAt(9));
assertEquals('a',string3.charAt(16));
}
@Test
public void testCapacity(){
assertEquals(25,string1.capacity());
assertEquals(31,string2.capacity());
assertEquals(40,string3.capacity());
}
@Test
public void testindexOf() {
assertEquals(1, string3.indexOf("ea"));
}
@Test
public void testlength() {
assertEquals(9, string1.length());
}
@Test
public void StringTester() {
String string="aa:30:3:5";
String[] strings=string.split(":");
assertEquals(':',string.charAt(2));
assertEquals("30",strings[1]);
}
@Test
public void ArraysTester() {
int[] arr={1,2,5,4};
Arrays.sort(arr);
assertEquals(5,arr[3]);
assertEquals(1,binarySearch(arr,2));
}
}
截圖
收獲
通過這次實(shí)踐以及對(duì)本篇博客的撰寫,我再一次學(xué)習(xí)了老師Intellj IDEA 簡(jiǎn)易教程中的單元測(cè)試部分,對(duì)于一些稍有遺忘的知識(shí)又加深了印象,最重要的是能夠更為靈活的使用單元測(cè)試。
總結(jié)
以上是生活随笔為你收集整理的20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pop to 特定的UIViewCont
- 下一篇: 【Cocos2d-Js基础教学 入门目录