sinon.js

nodeでは以下のみrequireしている。

nodeでsinonをrequireした場合以下のファイルはrequireされていない。

IE用

継承

なし

非公開メソッド

isDOMNode(obj)
objがDOM要素かどうかを判断する。DOM要素であればtrue、DOM要素で無ければfalseを返す。
パラメタ:obj (Object(DOM要素)) – DOM要素かどうかの判断対象
戻り値:DOM要素の場合、true / DOM要素では無い場合、false。
戻り値の型:Boolean
isElement(obj)
objがDOM要素かどうかチェックする。nodeType === 1をチェックし、内部でisDOMNodeを呼び出す。
DOM要素であればtrue,違えばfalseを返す。
パラメタ:obj (Object(DOM要素)) – DOM要素かどうかの判断対象
戻り値:DOM要素の場合、true / DOM要素では無い場合、false。
戻り値の型:Boolean
isFunction(obj)
objがFunctionであればtrue,違えばfalseを返す。
パラメタ:obj (Function) – Functionかどうかの判断対象
戻り値:Functionの場合、true / Functionでは無い場合、false。
戻り値の型:Boolean
mirrorProperties(target, source)
sourceのプロパティをtargetにコピーする。
この時Object.prototype.hasOwnPropertyを用いて、targetが同じ名前のプロパティを持っている場合は、コピーしない。
パラメタ:
  • target (Object) – コピー先オブジェクト
  • source (Object) – コピー元オブジェクト

公開メソッド

sinon.wrapMethod(object, property, method)
object[property]をmethodで上書きする。すでにwarpされている場合はエラーとなる。
また、mirrorPropertiesを用いてobject[property]のプロパティ等をmethodにコピーする。
パラメタ:
  • object (Object) – wrap対象となる property を持っているobject
  • property (String) – objectのメソッド名
  • method (Function) – object[property] を上書きする関数オブジェクト
戻り値:

引数のmethodを返す。

戻り値の型:

Function

sinon.extend(target, ...)
第2引数以降のオブジェクトのプロパティをtargetに追加する。
パラメタ:target (Object) – 拡張対象のオブジェクト
戻り値:第一引数のtargetを返す。
戻り値の型:Object
sinon.create(proto)
protoをprototypeに設定したインスタンスを生成して返す。
パラメタ:proto (Object) – 関数のプロトタイプに設定するオブジェクト
戻り値:protoをprototypeに設定したインスタンスオブジェクト
戻り値の型:Object
sinon.deepEqual(a, b)
aとbが同じかどうかチェック。a,b共に配列であれば、要素一つずつを更にdeepEqualを使って比較している。
DOMかどうかのチェックなども行なっている。
aとbが同じであれば、trueを返す。
パラメタ:
  • a (Anything) – 比較対象A
  • b (Anything) – 比較対象B
戻り値:

比較した結果同じであればtrue、異なればfalseを返す。

戻り値の型:

Boolean

sinon.functionName(func)
関数名を返す。
パラメタ:func (Function) – 名前を知りたい関数オブジェクト
戻り値:関数名を返す。
戻り値の型:String
sinon.functionToString()
this.getCall && this.callCountをしている為、sinonのコンテキストで呼び出すことは想定していない。現時点での呼び出し方法は不明。
spy.js / stub.js内で使用されている。
戻り値:関数名を返す。
戻り値の型:String
sinon.getConfig(custom)
sinon.defaultConfigを取得。cutomオブジェクトにsinon.defaultConfigのキーと同じ名前がある場合は、customの方を優先。
パラメタ:custom (Object) – sinon.jsの設定を上書きする為のオブジェクト
戻り値:sinon.jsの設定値
戻り値の型:Object
sinon.format(val)
return “” + valをしているだけ、sinon.jsの後半で、上書きを行なっている。
パラメタ:val (Anything) – format処理したい値
戻り値:“” + valの結果を返す。(val.toString()の結果)
戻り値の型:String
sinon.timesInWords(count)
countが1なら”once” / 2なら”twice” / 3なら”thrice” / 0 or otherなら “N times”を返す。
パラメタ:count (Numeric) – 文字化したい数字
戻り値:回数を文字で返す。
戻り値の型:String
sinon.calledInOrder(spies)
順番通りに、spyが呼ばれているかチェック。
パラメタ:spies (Array) – Spy関数の配列
戻り値:順番通り呼ばれている場合true、呼ばれていない場合false。
戻り値の型:Boolean
sinon.orderByFirstCall(spies)
呼ばれた順にspiesをソート
パラメタ:spies (Array) – Spy関数の配列
戻り値:ソートした結果
戻り値の型:Array
sinon.log()
noop関数(自分で実装しないと何もしてくれない。)
sinon.logError(label, err)
sinon.logを呼び出して、例外をthrowしている。(なぜsetTimeoutを利用してthrowしているのか不明)
パラメタ:
  • label (String) – エラーメッセージに出力する文字列
  • error (Object) – エラーオブジェクト(name/message/stackプロパティを持っている事を想定)
sinon.typeOf(value)
nullは”null”を返す。
Object.prototype.toString.call(value)で取得した結果、”[object String]”等の”String”.toLowerCase()を返す。
パラメタ:value (Anything) – 型情報を知りたい値
戻り値:型名
戻り値の型:String

プロパティ

sinon.defaultConfig
injectIntoThis
デフォルト値 : true
trueの場合、実行時のthisにsinon.config.properties [1] に記したの関数を設定する。
この場合、sinon.config.injectInto === thisになる。
falseの場合、sinon.config.injectInto(またはsinon.defaultConfig.injectInto)に
injectInto
デフォルト値 : null
sinon.config.injectIntoThisにfalseを設定した場合に、injectIntoに設定されているオブジェクトに
spy,stub,mock等のメソッドを設定する。
properties
デフォルト値 : [“spy”, “stub”, “mock”, “clock”, “server”, “requests”]
sinon.config.injectIntoまたは、sandbox.argsに上記のメソッドを設定する。
useFakeTimers
デフォルト値 : true
trueの場合、sinon.config.injectIntoまたは、sandbox.argsにclockを設定する。
falseの場合、clockはどこにも設定されない。
useFakeServer
デフォルト値 : true
trueの場合、sinon.config.injectIntoまたは、sandbox.argsにserver / requestsを設定する。
falseの場合、server / requestsはどこにも設定されない。
[1]設定が無い場合は、sinon.defaultConfigを指している。