十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这就是相对路径
成都创新互联公司作为成都网站建设公司,专注网站建设公司、网站设计,有关企业网站制作方案、改版、费用等问题,行业涉及三轮搅拌车等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
指的是相对于工程文件的位置而言
在eclipse的结构图中的位置
在windows的文件夹里的位置
在查看属性里的绝对路径的位置
代码来找文件路径
public class Test {
public static void main(String[] args) throws Exception {
System.out.println("当前目录的路径\t"+new File(".").getCanonicalPath());// "."表示当前目录
File file = new File("Buffered.txt");
if(!file.exists()){//如果不存在,就新建该文件
file.createNewFile();
}
System.out.println("Buffered.txt的绝对路径\t"+file.getCanonicalPath());
System.out.println("Buffered.txt的相对路径\t"+file.getPath());
}
}
输出
当前目录的路径 D:\space\workspace\Demo
Buffered.txt的绝对路径 D:\space\workspace\Demo\Buffered.txt
Buffered.txt的相对路径 Buffered.txt
path输入修改为绝对路径就行了,用相对路径要看运行时所在的路径对不对,肯定有问题的。
src\ftplog\2014-09-30.txt可以修改为src所在的目录\src\ftplog\2014-09-30.txt
String path = "src/"+logPath+date+".txt";这一段改成绝对路径就ok。
你这说的太笼统了,应该具体些。
有了Java代码之后
1、可以在代码中写些测试的方法,把你想要验证的东西,输出看一下。
2、可以用Debug的形式,跟踪代码执行,验证程序的逻辑是否正确。
3、利用JUnit写断言,测试结果
软件的测试方法很多,不同的出发点得到不同的测试方法。有:
?从测试过程来分:静态分析法、动态测试法;
?从观察结构的透明性方式来分:白盒法、黑盒法、灰盒法;
?从获得测试数据形式上分:穷尽法;等价类划分法;边界值分析法;
?从逻辑分析上分:因果图法;错误推测法;
?从测试步骤上分:单元测试、集成测试、确认测试、系统测试等;
?从考察形式上分:功能测试,逻辑测试;? ? ? ? ? ?如何测试得更完全、怎样进行测试用例的设计,是软件测试中的关键技术。无论用哪种方法进行测试,都是设法用较少的测试用例集合测试出程序中较多的潜在错误。
静态分析时,不执行程序,可对需求分析说明书、软件设计说明书、源程序做结构检查、流图分析、符号执行来分析软件可能导致的异常情况,找出软件错误。从测试过程来分:静态分析法、动态测试法;
结构检查是手工分析技术,对需求说明、程序设计、编码、测试工作进行评议,虚拟地(模拟)执行程序,在评议中发现和检查错误;
流图分析是通过分析流程图、代码结构来检查程序错误,便于进行编码分析和测试结果分析;
符号执行是定义符号化数据,为程序的每条路径给出符号表达式,对特定路径输入符号,经处理输出符号,判断程序的行为是否错误,这种方法复杂,易出错,较少使用。
灰盒法是白盒法和黑盒法相结合使用的方法,仅对重点路径和程序段用白盒法测试,大部分用黑盒法进行测试。
动态测试是直接执行程序进行测试,包括功能测试、接口测试和结构测试,观察程序的行为,记录执行的结果,从执行结果来分析程序可能出现的错误;
有些人设想,不管使用那种测试方法,只要对每一种可能发生的情况都进行测试,能正确通过,就可以得到完全正确的程序。
包含所有可能情况的测试称为穷尽测试,实际上,通常不可能做到穷尽测试。因为各种输入数据的排列组合情况往往多到无法实际测试完成的程度。如用黑盒法测试三个整数型的输入数据,如果每个整数是16位二进制数,则输入数据有
216×216×216=248≈2.8×1014种排列组合。
如果每测试一次需要1毫秒,测试完毕这些排列组合的各种情况需要一万年,另外还需测试不合法的输入情况,实际上不可能穷尽所有组合情况。因此,一般的软件测试是有限测试。
Alpha(α)测试:通用软件产品为了征集用户的意见,在开发者的场所,由用户进行的测试,记录用户发现的错误和问题。
Beta(β)测试:在一个或多个用户自己的场所,由最终用户进行,并记录在测试中遇到的所有问题和想法。
重要的通用软件产品,大多经过α和β测试。
1、Jasmine
Jasmine是一个行为驱动的测试开发框架,用于对JavaScript代码进行测试。它不依赖其它任何JavaScript框架,也不需要DOM。它的语法简洁、明确,写测试非常容易。
2、Mocha
Mocha是一个功能丰富的JavaScript测试框架,既运行于Node.js环境中,也可以运行于浏览器环境中。Mocha以串行方式运行测试,能做出灵活而准确的报告,也能将测试中未捕捉的异常映射到正确的测试用例。
3、Chai
Chai是个支持BDD/TDD的库,可用于node和浏览器,可配合任何JavaScript测试框架使用。
4、QUnit
QUnit是个功能强大又易于使用的JavaScript单元测试框架。jQuery、jQueryUI和jQueyMobile项目都使用这个框架,它能测试普通的JavaScript代码。
5、Sinon
Sinon.JS为JavaScript提供了独立的spies、stubs和mocks[译者注:Spy、Stub和Mock都是测试专用名词,Stub常被翻译为桩,spies是Spy的复数形式,是一种可以监视方法、调用和参数的技术]。它不依赖任何东西,可以配合任何单元测试框架工作。
6、Karma
Karma是针对连通浏览器的一个框架无关测试运行器。每一个测试结果对应每个浏览器,它的测试和显示都是通过命令行暴露给开发者的,这样他们就可以看到浏览器测试的通过或失败。
7、Selenium
Selenium有一个简单的目标:就是自动化浏览器。它主要用于自动化测试web应用程序,但是只是很简单地考虑到了基于网络的管理任务。
8、WebdriverIO
WebdriverIO允许用户仅添加几行代码就可以控制浏览器或移动应用程序,使测试代码更简单、简洁、易读。集成的TestRunner同样允许你以同步的方式调用异步命令,这样你不需要关心如何处理Promise以避免竞态条件。此外,它取消了所有的繁琐的设置工作,并且会为您管理的Selenium会话。
9、Nightwatch
Nightwatch.js是一个易于使用的Node.js,它是为基于浏览器的app和网站设计的终端到终端(E2E)的测试方法。它使用强大的W3CWebDriverAPI,用于在DOM元素上执行命令和断言。
10、PhantomCSS
PhantomCSS获得CasperJS捕获的屏幕截图,并使用Resemble.js将其与基准图进行对比,以测试RGB像素差异。java课程发现PhantomCSS然后生成图像差异对比,用于帮助您找到原因。
11、PhantomFlow
PhantomFlow使用决策树提供UI测试方案。针对PhantomJS,CasperJS和PhantomCSS的NodeJS包装器——PhantomFlow能够流畅地在代码中描述用户流程,同时生成用于可视化的结构化树数据。
可以用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. 使用文档生成器做测试文档。