1

私はnode.jsの単体テストを開始しており、node.jsの単体テストで最も使用されているフレームワークを調査しています。それについてのより多くの情報があるかもしれないので、物事を簡単にするためだけに最もよく使われるフレームワークから始めたいと思います。モカである可能性がある多くのサイトによると。

統合テストを行うためのこのモジュールは理解していますが、依存関係のスタブなどの機能を使用してモジュールを操作する方法がわかりません。モカがモック/スタブ機能を提供していないのを見たことがあるので、人々がこれらの問題に通常どのように対処しているかはよくわかりません。

ですから、ユニットテストを実行したり、依存関係をスタブしたりするために、最近最も人気のあるモジュールを知りたいのですが...短い例がいいでしょう。

ありがとう

4

1 に答える 1

1

多くのnode.jsプロジェクトで組み合わされている現在のモジュールスイートは次のようです。

  • 実際のテストハーネス自体のモカ
  • アサーションのためのチャイ
  • モック/スタブ用のSinon

これらはすべて、node.jsとブラウザーの両方で機能します。これは、私を含む多くの人々にとって重要です。あなたが期待するかもしれないように利用可能な多くの選択肢がありますが、モックとスタブに関しては、Sinonが明らかに現在人気のある選択肢であると私は信じています。

これらすべてのライブラリを使用するcoffeescriptの小さな例を次に示します。サインインフォームに入力して送信すると、情報がAPIに正しく渡されることをテストします。

describe "UserSignInView.signIn", ->
  it "should submit the user credentials", ->
    sinon.spy _OT.api, "sendJSON"
    testUser =
      email: "test.user@othenticate.com"
      password: "password"
    $("#OT_signInForm .OT_email").val(testUser.email).change()
    $("#OT_signInForm .OT_password").val(testUser.password).change()
    $("#OT_signInForm .OT_signInButton").click()
    assert.ok _OT.api.sendJSON.called
    credentials = _OT.api.sendJSON.lastCall.args[0]
    assert.equal credentials.email, testUser.email
    assert.equal credentials.password, testUser.password
    options = _OT.api.sendJSON.lastCall.args[1]
    assert.equal options.url, "/othen/users/authenticate"
    assert.isDefined options.error
    assert.isDefined options.success
于 2012-12-02T17:32:06.690 に答える