0

私のサーバー側ファイルには、テストディレクトリのファイルにあるテストケースを書きたい2つの関数が定義されています。

~PRJ_DIR/server/file1.coffee

calcSha1Hash = (params) ->
    .... logic...
anotherFunc = () ->
    ..somelogic..
    x = calcSha1Hash(params)

~PRJ_DIR/tests/server/file1.coffee

MochaWeb?.testOnly () ->
  describe.only("Hash generation.  ", () ->
    it(" calcSha1Hash returns Hash.", (dn) ->
      dataDict = {email: 'johndoe@gmail.com'}
      hash = calcSha1Hash (dataDict)
      chai.assert.isDefined(hash)
      dn()
    )
  )

Meteor のテスト ケースでサーバー側の func(calcSha1Hash) を呼び出すにはどうすればよいですか

4

1 に答える 1

0

これを行う流星固有の方法がない限り、JavaScript でプライベート関数を単体テストする方法のソリューションを実装できます。

単一のグローバル変数 (のようなものTestAPI) が必要です。次に、関数をクロージャー内に追加して、どこからでもアクセスできるようにします。

記事の例を次に示します。

var myModule = (function() {

  function foo() {
    // private function `foo` inside closure
    return "foo"
  }

  var api = {
    bar: function() {
      // public function `bar` returned from closure
      return "bar"
    }
  }

  /* test-code */
  api._foo = foo
  /* end-test-code */

  return api
}())

誰かがもっと良いものを持っているかもしれませんが、それが始まりです。

于 2015-07-17T19:31:18.803 に答える