https://github.com/magnars/buster-snippets.el.git
git clone 'git://github.com/magnars/buster-snippets.el.git'
Yasnippets for the Buster javascript testing framework.
tc => new testCase (one for node, browser and node+browser)
tt => additional test
cx => nested context
su => setup method
td => teardown method
Assert and refute snippets follow a common pattern. They start with as or re
followed by a mnemonic shortcut. Most are simply the ‘initials’ of the method name, but
the best shortcuts are saved for the most common assertions.
ase - assert.equals
asm - assert.match
ass - assert.same
asx - assert.exception
asd - assert.defined
ast - assert.threw
asat - assert.alwaysThrew
asin - assert.isNull
asio - assert.isObject
asto - assert.typeOf
ascn - assert.className
astn - assert.tagName
Buster also includes Sinon and its assertions:
asc - assert.called
asc1 - assert.calledOnce
asc2 - assert.calledTwice
asc3 - assert.calledThrice
ascw - assert.calledWith
ascc - assert.callCount
asco - assert.callOrder
asco - assert.calledOn
asaco - assert.alwaysCalledOn
asacw - assert.alwaysCalledWith
asacwe - assert.alwaysCalledWithExactly
ascwe - assert.calledWithExactly
Refutations mirrors assertions exactly, except that they start with re instead of
as. It is the beautiful symmetry of the buster assertions package.
If you haven't, install yasnippet then install buster-snippets like so:
git submodule add https://github.com/magnars/buster-snippets.el.git site-lisp/buster-snippets
Then require buster-snippets at some point after yasnippet.
(require 'buster-snippets)
Add "use strict"-declarations to the test cases:
(setq buster-use-strict t)
Declare assert and refute if you've disabled additional globals:
(setq buster-exposed-asserts nil)
Set the default global namespace-object on a per-project basis:
(add-hook 'js2-mode-hook
(lambda ()
(when (string-match-p "projects/zombietdd" (buffer-file-name))
(setq js2-additional-externs '("ZOMBIE"))
(setq buster-default-global "ZOMBIE"))))
;; example from one of my projects
Add the default global to the IIFE (immediately invoked function expression)
(setq buster-add-default-global-to-iife t)
The global will by default be shortened to a one-letter var, like this:
(function (Z) {
// use Z instead of ZOMBIE inside the namespace
}(ZOMBIE));
Copyright (C) 2011 Magnar Sveen
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.