Javascript测试框架Jasmine(四):自定义Matcher

2014-06-20 · 912 chars · 5 min read

一个项目常常需要封装自定义的 Matcher 来在多个 spec 中使用,这次讲下怎么写兼容 Jasmine 的自定义 Matcher。

自定义的 Matcher 从本质上讲是一个对比函数,它的函数名就是暴露给 expect 调用的名称,它接受actual 值和expected 值。这个函数会传入 Jasmine 作用域中,可以在beforeEach 中调用到。每次 spec 执行完后,都会把自定义 Matchers 卸载,下面看个简单例子:

Javascript测试框架Jasmine(三):Setup、Teardown、嵌套describe等

2014-06-20 · 891 chars · 5 min read

上一篇把 Matcher 说了说,本来该说自定义 Matcher 的,但是发现有些七七八八的细节没讲,那就今天先把这些基础说了。

Setup and Teardown

Setup 和 Teardown 可以帮助 Suite 执行一些重复的代码,Jasmine 提供了beforeEachafterEach 函数。很显然,beforeEach 在 describe 中的任何 spec 执行之前运行,afterEach 在任何 spec 执行之后运行。具体的逻辑看 Demo 就一目了然了:

Javascript测试框架Jasmine(二):Matchers

2014-06-19 · 899 chars · 5 min read

上一篇稍微介绍了一下,这一篇讲讲 Matcher。在 Jasmine 中,每个 Matcher 实现一个“期望值”和“实际值”的布尔判断,Jasmine 会根据 Mather 判断 expectation 是true 还是false ,然后决定 spec 是测试通过还是失败。所有 Matcher 可以通过not 执行否定判断。例如:

it('not示例', function () {
  expect(false).not.toBe(true)
})

Javascript测试框架Jasmine(一):简介

2014-06-18 · 612 chars · 4 min read

随着 javascript 程序的复杂度加深,测试的重要性越来越明显。Javascript 的测试框架有很多,例如:Jasmine,Qunit,JsTestDriver,JSUnit,Mocha 等。经过一番对比后决定使用 Jasmine。Jasmine 是一套 Javascript 行为驱动开发框架(BDD),干净简洁,表达力强且易于组织,不依赖于其他任何框架和 DOM,可运行于 Node.js,浏览器端或移动端。

下载运行

下载GitHub 上的项目。解压后,dist 下就是各个版本的独立运行包,解压最新的 2.0.0 版本,双击打开SpecRunner.html 即可运行测试,注意要在SpecRunner.html<head> 内引用 Jasmine 的 js 文件和测试文件。想简单使用的话,将soucre/spec 下的测试文件替换成你自己的即可。

编写友好的Html和CSS代码

2014-06-12 · 1,464 chars · 8 min read

Html 和 CSS 写过不少(虽然我很不喜欢写),也使用过别的同事写的和第三方库的,在使用的过程中也渐渐对 Html 和 CSS 代码的“友好度”有了点认识。UI 设计出的图片,放在不同开发手里,即使最终效果差不多,但是结构、思想、质量可能会天差地别(可以从结构的合理性,可复用程度等方面看出)。从好的代码中可以看出开发人员天马行空的想象力,扎实的代码功底,丰富的经验和奇妙的想象力,更重要的是:用着舒心。下面从代码的“可用性”上,讲讲我实际开发过程中积累的认识,很多是一些基础和细节的东西,有疑义欢迎讨论。

FreeMarker使用总结

2014-06-11 · 246 chars · 2 min read

最近在做的项目后端语言使用的是 Java,用到的 FreeMarker 模板,没有学习过 Java,还是遇到一些问题的。首先分享个干货:

《FreeMarker 手册》南磊译

手册看一下基本就没啥问题了。下面列一下我遇到的感觉需要注意的点(以后有新东西再补充)。

给wordpress站点提提速

2014-06-11 · 247 chars · 2 min read

最近一个月忙于公司的项目,没怎么顾这个站,前两天打开的时候发现慢的令人发指,F12 控制台瞅了一下,发现前台有个 Google 的字体 404 了,整整请求了 20s:

右键查看源代码可以找到这一段:

使用svn:externals建立SVN文件(夹)链接

2014-05-15 · 471 chars · 3 min read

在实际开发常常出现这样的情况:同一文件(文件夹)在不同的项目中使用,如果复制多份,维护会变得非常麻烦。此时使用 svn

可以方便的解决这个问题,svn
是用来建立文件(夹)链接,或者叫文件(夹)引用,或者映射什么的….总之作用就是 svn 上的一个文件,在多处使用,修改后 update,即会同步更新。这样管理项目的公用代码就很方便了,今天刚好用到,就记录下来(网上很多只说了文件夹的操作,对文件的操作只字未提)。

jqPaginator 基于 jQuery 的分页组件

2014-05-10 · 206 chars · 2 min read

项目主页:http://jqpaginator.keenwon.com

GitHub:https://github.com/keenwon/jqPaginator

现在网上各种各样的分页组件很多,但是很难找到十分“称心如意”的,于是 jqPaginator 诞生了。

我心中理想的分页组件,要不受 CSS 框架限制,可以使用在各种不同风格中的网页中。以我浅显的经验来看,要达到这个目标,关键的一点就是高度自定义的 Html 结构。所以 jqPaginator 努力做到合理范围内的自定义,使其灵活的使用了各种不同的场景。