1.超时测试 可以为JUnit的单个测试设置超时: 超时设置1秒:@Test(timeout=1000),单位为毫秒 2.示例 Leibniz定理:PI/4= 1 - 1/3 + 1/5 - 1/7 +1/9...即 PI = 4 - 4/3 + 4/5 - 4/7... Calculator.java package com.testList; public class Calculator { public double calculator(int count){ double sum =…
1.异常测试 对可能抛出的异常进行测试: 异常本身是方法签名的一部分: * public static int parseInt(String s) throws NumberFormatException 测试错误的输入是否导致特定的异常: * Integer.parseInt(null) * Integer.parseInt("") * Integer.parseInt("xyz") 2.异常测试的方法: 使用try..catch (Exception e)捕获…
1. @Before和@After 同一个单元测试内的多个测试方法: 测试前都需要初始化某些对象 测试后可能需要清理资源fileInputStream.close() @Test public void testCalcAdd2Number(){ Main calc = new Main(); int r = calc.calculate("1+2"); assertEquals(3,r); } @Test public void testCalcAdd3Number(){ Main…
测试驱动开发(Test Driver Development) 1.使用main()方法测试的缺点: 只能有1个main()方法,不能把测试代码分离 没有打印出测试结果和期望结果,例如expected:3628800,but actual:362880 因此,需要一种测试框架,帮助我们编写测试 public class Fact { public static void main(String[] args) { if(fact(10)==3628800){ System.out.println…
参数化测试: 可以把测试数据组织起来 用不同的测试数据调用相同的测试方法…
方式1: @Test(expected = IndexOutOfBoundsException.class) public void empty() { new ArrayList<Object>().get(0); }解析:@Test的注释有一个可选参数expected,它作为Throwable的子类,可以抛出异常. 方式2:使用try...catch().. @Test public void testExceptionMessage() { try { new ArrayList<…
函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END' 对象 原因解释: Python函数在定义的时候,默认参数L就被计算出来了,即 [] ,因为默认参数L指向了可变对象[],每次调用的时候,如果改变了L的内容,下次调用的时候,L指向的内容也发生了改变,不再是函数定义时候的 [] 了. 修改后: def add_end(L=None): if L i…
函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_end([1, 2, 3]) [1, 2, 3, 'END'] >>> add_end(['x', 'y', 'z']) ['x', 'y', 'z', 'END']当使用默认参数时: >>> add_end() ['END'] >>> add_end()…
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 Python 教程 爬下来做成 PDF 电子书方便大家离线阅读. 开始写爬虫前,我们先来分析一下该网站1的页面结构,网页的左侧是教程的目录大纲,每个 URL 对应到右边的一篇文章,右侧上方是文章的标题,中间是文章的正文部分,正文内容是我们关心的重点,我们要爬的数据就是所有网页的正文部分,下方是用户的…
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了. 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算…