test

A collection of 2 posts

test

Sences of reading How Google Test Software

测试类型分小,中,大三种。 小型测试对应单元测试,主要使用Mock和Fake测试方法,验证代码的正确性。 如果没有专门的测试环境,SET则难以执行中大型测试,适合开发伴随单元测试,高效且保证质量。 小中型测试应该实现自动化,要有测试结果;在必要的情况,或者测试环境不能执行完成的条件下,必要的提供测试钩子,显示系统测试状态,以保持信心。 Wikipedia 上的定义: 测试驱动开发 (TDD) 是一种以非常短的开发周期不断迭代的软件开发过程:首先开发者对将要实现的功能或者新的方法写一个失败的自动化测试用例,然后就去写代码来通过这个测试用例,最终通过重构代码让一其达到可接受的水准。Kent Beck, 这个技术创造者或者说重新发现者,在2003年声明TDD 鼓励简单的设计和激励信心。 TDD的原则就是不写多余的生产代码,刚好让测试通过即可。在开发中,先写失败的测试用例,在编码实现使测试通过。 虽然我们的代码并不多,但是每一步都写得很有信心,这就是TDD的好处。 用TDD的方式写程序的另一个好处,就是编码之前不需要对单个模块进行仔细的设计,可以在写测试的时候进行设计。这样开发出来的模块既可以满足用户需要,也不会冗余。 重要的是测试能够执行下去,

php

Stub & Mock test

Stubs : Stubs通常用于在测试中提供封装好的响应,譬如有时候编程设定的并不会对所有的调用都进行响应。Stubs也会记录下调用的记录,譬如一个email gateway就是一个很好的例子,它可以用来记录所有发送的信息或者它发送的信息的数目。简而言之,Stubs一般是对一个真实对象的封装。 Mocks : Mocks即是针对设定好的调用方法与需要响应的参数封装出合适的对象。【2】 简单说就是你可以用stub去伪造(fade)一个方法,阻断对原来方法的调用 简单来说mock就是stub + expectation, 说它是stub是因为它也可以像stub一样伪造方法,阻断对原来方法的调用, expectation是说它不仅伪造了这个方法,它还期望你(必须)调用这个方法,如果没有被调用到,这个test就fail了【1】 一个完美的解决的方案是,我们人为地来指定计算的结果,然后测试数据库的写入操作。人为地让一个对象对某个方法返回我们事先规定好的值,这就叫做 stub。 mock 是一个非常容易和 stub 混淆的概念。简单来说,我们可以将 mock 看做是一种更全面和更智能的 stub。 首先解释全面,我们需要明确,