扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
步骤:
平潭ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
1、在cmd中切换到编写的代码所保存的目录下;
2、在cmd中输入javac然后点空格,再点击文件名和包括后缀名确定后,在存放编写代码的文件下会生成一个class的字节码文件;
3、在cmd中输入java然后点空格,输入第二步中生成的字节码的文件名,不需要后缀名,点击确定即可运行代码。
代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。计算机代码称为源代码,是相对目标代码和可执行代码而言的。 源代码就是用汇编语言和高级语言写出来的地代码,目标代码是指源代码经过编译程序产生的能被cpu直接识别二进制代码。
可以用main函数和JUnit来写测试代码。main是最早使用的,但是现在更流行的测试工具是JUnit。
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
下面是一些具体的编写测试代码的技巧或较好的实践方法:
1. 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。
3. 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。
4. 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
5. 将测试代码和工作代码放在一起,一边同步编译和更新。(使用Ant中有支持junit的task.)
6. 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。
7. 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
8. 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。
9. 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
10.测试要尽可能地小,执行速度快。
11.不要硬性规定数据文件的路径。
12.利用Junit 的自动异常处理书写简洁的测试代码
事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用来测试两个引用是否指向同一个对象
assertEquals()用来测试两个对象是否相等
14. 确保测试代码与时间无关
15. 使用文档生成器做测试文档。
你这说的太笼统了,应该具体些。
有了Java代码之后
1、可以在代码中写些测试的方法,把你想要验证的东西,输出看一下。
2、可以用Debug的形式,跟踪代码执行,验证程序的逻辑是否正确。
3、利用JUnit写断言,测试结果
是控制台输入吗。为了方便类都写一个里面了。可以参考下
建立一个题目实体(标题、4个选项属性、正确答案);
建立一个结果实体(标题、是否正确结果、选择的答案、正确答案);
建立一个题目list集合,用于存放题目(每个难度对应一个list);
建立一个结果list集合,用于存放作答后的信息;
创建对应的题目对象,实体化实体,并且放入对应的list里面
根据选择对应的难度找到对应难度的list集合;
然后遍历这个集合,依次显示每个题目的信息,并让用户作答,答完一个显示下一个题目,
获取用户选择的答案,用这个答案跟实体中的正确答案做比较;
创建结果实体对象,将比较后的信息set到实体中。(标题、正确结果、选择的答案、正确答案);
将这个结果实体放入到结果list集合中;循环结束后遍历结果list集合显示就可以了。
代码:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SaveLog {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 提示信息
System.out.println("请输入数字选择题目难度,1:简单,2:困难");
// 获取到对应难度的题目
ListQuestion questionList = getQuestionByLevel(in.nextInt());
// 创建结果list
ListQuestionResult questionResults = new ArrayListQuestionResult();
// 总答题,正确,错误
int questionCount = questionList.size();
int correntCount = 0;
int errorCount = 0;
// 遍历题目
for (int i = 0; i questionList.size(); i++) {
// 获取到题目
Question question = questionList.get(i);
System.out.println("题目" + (i + 1) + ":" + question.getTitle());
// 获取到题目选项并打印控制台
ListString selected = question.getList();
for (String string : selected) {
System.out.println(string);
}
// 获取到选择的答案
String corrent = in.next();
// 获取到做题结果
QuestionResult qr = setQuestionResult(question, corrent);
// 计算错误与正确的题目
if (corrent.equalsIgnoreCase(question.getCorrentResult())) {
correntCount = correntCount + 1;
} else {
errorCount = errorCount + 1;
}
// 放入结果集合
questionResults.add(qr);
}
System.out.println("您一共答了" + questionCount + "道题,其中正确的为" + correntCount + "题,错误为" + errorCount + "题");
System.out.println();
// 遍历结果
for (QuestionResult questionResult : questionResults) {
if (!questionResult.getSelected().equals(questionResult.getCorrentResult())) {
System.out.println("错误题目:" + questionResult.getTitle());
System.out.println("是否正确:" + questionResult.getResult());
System.out.println("选择的答案:" + questionResult.getSelected() + ",正确答案:" + questionResult.getCorrentResult());
System.out.println();
}
}
}
public static QuestionResult setQuestionResult(Question question, String corrent) {
QuestionResult result = new QuestionResult();
result.setCorrentResult(question.getCorrentResult());
result.setTitle(question.getTitle());
result.setSelected(corrent);
// 如果答案正确
if (corrent.equalsIgnoreCase(question.getCorrentResult())) {
result.setResult("正确");
} else {
result.setResult("错误");
}
return result;
}
/** 根据难度获取对应题目(1:简单。2:困难) */
public static ListQuestion getQuestionByLevel(int level) {
ListQuestion result = null;
if (level == 1) {
// 创建list集合用于存放题目,简单难度
ListQuestion questionList = new ArrayListQuestion();
// 添加题目到list
Question question = new Question();
question.setTitle("中国文化博大精深,请问1+2等于几?");
// 题目答案选项
ListString list = new ArrayListString();
list.add("A:1");
list.add("B:2");
list.add("C:3");
list.add("D:6");
question.setCorrentResult("C");
question.setList(list);
// 将题目放到list集合
questionList.add(question);
// 设置返回结果
result = questionList;
} else if (level == 2) {
// 创建list集合用于存放题目,简单难度
ListQuestion questionList = new ArrayListQuestion();
// 添加题目到list
Question question = new Question();
question.setTitle("朝辞白帝彩云间的下一句是什么?");
// 题目答案选项
ListString list = new ArrayListString();
list.add("A:千里江陵一日还");
list.add("B:野火烧不尽");
list.add("C:离离原上草");
list.add("D:智商捉鸡");
question.setCorrentResult("A");
question.setList(list);
// 将题目放到list集合
questionList.add(question);
// 设置返回结果
result = questionList;
}
return result;
}
}
/** 题目结果类 */
class QuestionResult {
/** 题目名称 */
private String title;
/** 是否正确 */
private String result;
/** 选择的答案 */
private String selected;
/** 正确答案 */
private String correntResult;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getSelected() {
return selected;
}
public void setSelected(String selected) {
this.selected = selected;
}
public String getCorrentResult() {
return correntResult;
}
public void setCorrentResult(String correntResult) {
this.correntResult = correntResult;
}
}
/** 题目类 */
class Question {
/** 题目名称 */
private String title;
/** 题目的所有选项 */
private ListString list;
/** 正确答案 */
private String correntResult;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public ListString getList() {
return list;
}
public void setList(ListString list) {
this.list = list;
}
public String getCorrentResult() {
return correntResult;
}
public void setCorrentResult(String correntResult) {
this.correntResult = correntResult;
}
}
那是一个junit的测试方法,这段代码可以直接写在源码中,作为白盒测试使用。
1、首先添加junit支持(这里假设你已经假如支持库)。
其次,最好单独创建test类文件夹
大致测试类这样写:
package myUtils
import static org.junit.Assert.*;
import org.junit.Test;
public class TranslatorTest {
/**
* 这里测试你的translate方法
*/
@Test
public void testTranslate(String str) {
Translator my = new Translator("enToZh.txt");
String tName = my.translate("sName");
System.out.println("tName:"+tName);
}
}
当然,Assert类提供了很多方便测试的静态方法,推荐你使用提供的静态方法进行测试。不过你这个例子不需要。@Test注解也是必须的,测试类和类最好在同一个包下,分开管理(一个放src目录下,一个放test目录下(这个目录需要自己创建))
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流