软件工程第二次作业
1. 开发工具
由于选修过Java课程,已安装Eclipse,运行截图如下。
2. 自动单元测试技术
-
导入Junit
导入是参考老师的博客设置的。截图如下。
-
被测试类
被测试类为字母--暗文转换类,是用来将英文字母加密(a2n())方法和暗文解密(n2a())方法的类。它是一个非常简单的类,只罗列了一堆if来判断字符。
编写此程序是为了自己写奇怪的东西的时候使用,转换规律可任意更改,灵感源于niconico网站的P主lulu/スノーノイズP,他的一首鏡音レン原创歌曲《000》[sm22656010] 便是用这种方法写的,虽然没有太大作用但是看起来非常帅气(并不)。
1 package junit_test; 2 //字母--暗文转换 3 public class Change { 4 5 public String a2n(char a){ 6 String b = "FF"; 7 if(a == 'a' || a == 'A'){ 8 b = "70"; 9 } 10 else if(a == 'b' || a == 'B'){ 11 b = "71"; 12 } 13 else if(a == 'c' || a == 'C'){ 14 b = "72"; 15 } 16 else if(a == 'd' || a == 'D'){ 17 b = "73"; 18 } 19 else if(a == 'e' || a == 'E'){ 20 b = "74"; 21 } 22 else if(a == 'f' || a == 'F'){ 23 b = "75"; 24 } 25 else if(a == 'g' || a == 'G'){ 26 b = "76"; 27 } 28 else if(a == 'h' || a == 'H'){ 29 b = "77"; 30 } 31 else if(a == 'i' || a == 'I'){ 32 b = "78"; 33 } 34 else if(a == 'j' || a == 'J'){ 35 b = "79"; 36 } 37 else if(a == 'k' || a == 'K'){ 38 b = "7A"; 39 } 40 else if(a == 'l' || a == 'L'){ 41 b = "7B"; 42 } 43 else if(a == 'm' || a == 'M'){ 44 b = "7C"; 45 } 46 else if(a == 'n' || a == 'N'){ 47 b = "7D"; 48 } 49 else if(a == 'o' || a == 'O'){ 50 b = "7E"; 51 } 52 else if(a == 'p' || a == 'P'){ 53 b = "7F"; 54 } 55 else if(a == 'q' || a == 'Q'){ 56 b = "80"; 57 } 58 else if(a == 'r' || a == 'R'){ 59 b = "81"; 60 } 61 else if(a == 's' || a == 'S'){ 62 b = "82"; 63 } 64 else if(a == 't' || a == 'T'){ 65 b = "83"; 66 } 67 else if(a == 'u' || a == 'U'){ 68 b = "84"; 69 } 70 else if(a == 'v' || a == 'V'){ 71 b = "85"; 72 } 73 else if(a == 'w' || a == 'W'){ 74 b = "86"; 75 } 76 else if(a == 'x' || a == 'X'){ 77 b = "87"; 78 } 79 else if(a == 'y' || a == 'Y'){ 80 b = "88"; 81 } 82 else if(a == 'z' || a == 'Z'){ 83 b = "89"; 84 } 85 else if(a == ',' || a == '.'){ 86 b = "8A"; 87 } 88 else if(a == ' '){ 89 b = "8B"; 90 } 91 else b = "8C"; 92 return b; 93 } 94 public char n2a(String a){ 95 char b = '0'; 96 if(a == "70"){ 97 b = 'a'; 98 } 99 else if(a == "71"){ 100 b = 'b'; 101 } 102 else if(a == "72"){ 103 b = 'c'; 104 } 105 else if(a == "73"){ 106 b = 'd'; 107 } 108 else if(a == "74"){ 109 b = 'e'; 110 } 111 else if(a == "75"){ 112 b = 'f'; 113 } 114 else if(a == "76"){ 115 b = 'g'; 116 } 117 else if(a == "77"){ 118 b = 'h'; 119 } 120 else if(a == "78"){ 121 b = 'i'; 122 } 123 else if(a == "79"){ 124 b = 'j'; 125 } 126 else if(a == "7A"){ 127 b = 'k'; 128 } 129 else if(a == "7B"){ 130 b = 'l'; 131 } 132 else if(a == "7C"){ 133 b = 'm'; 134 } 135 else if(a == "7D"){ 136 b = 'n'; 137 } 138 else if(a == "7E"){ 139 b = 'o'; 140 } 141 else if(a == "7F"){ 142 b = 'p'; 143 } 144 else if(a == "80"){ 145 b = 'q'; 146 } 147 else if(a == "81"){ 148 b = 'r'; 149 } 150 else if(a == "82"){ 151 b = 's'; 152 } 153 else if(a == "83"){ 154 b = 't'; 155 } 156 else if(a == "84"){ 157 b = 'u'; 158 } 159 else if(a == "85"){ 160 b = 'v'; 161 } 162 else if(a == "86"){ 163 b = 'w'; 164 } 165 else if(a == "87"){ 166 b = 'x'; 167 } 168 else if(a == "88"){ 169 b = 'y'; 170 } 171 else if(a == "89"){ 172 b = 'z'; 173 } 174 else if(a == "8A"){ 175 b = ','; 176 } 177 else if(a == "8B"){ 178 b = ' '; 179 } 180 else b = '.'; 181 return b; 182 } 183 }
-
测试类
1 package junit_test; 2 3 import static org.junit.Assert.*; 4 import org.junit.Test; 5 6 public class Junit_test { 7 @Test 8 public void a2n() { 9 assertEquals("8A",new Change().a2n('.')); 10 } 11 @Test 12 public void n2a() { 13 assertEquals('g',new Change().n2a("76")); 14 } 15 16 }
-
运行测试类
运行测试类后截图如下。
因为好奇错了长什么样,我又写了一个错误的数据。它判断出了错误,并且提示我希望得到97(即a)但结果为103(即g)。
运行截图如下。
-
完善JUnit
在src下新建源文件夹test,然后将Junit_test类和包一起移动到test文件夹。
然后使用IDE自动生成测试类。截图如下。
修改具体参数,运行结果如图。
我又好奇它故障的样子,于是把其中一个还原到刚自动生成测试类的样子,运行截图如下。
嗯,这次作业圆满成功啦~
小记:
很久不打开Eclipse都不会用了,看了看以前编的程序才又把Java捡起来。虽然决定考研了,但平时应该适当抽出时间敲代码,生疏的感觉很难受。
复习的步伐才刚刚迈出,整个人都很悲观,很容易受刺激。最近一直在麻痹自己,让自己的大脑假装放松。但我知道,紧张才是我现在应该有的样子。
积极起来,然后加油,嗯。