2016-10-22 9 views
1

私は安らかなWebサービスへのAPI呼び出しを行い、このライブラリのコンシューマにメソッドを提供するJavaScriptライブラリ/モジュールを作成しました。このライブラリは、フロントエンドライブラリまたはnpmモジュール(browserifyを使用して変換されたコード)として同じコードが使用されるように構築されています。JavaScriptとMochaのユニットテスト

しかし、私は今、同じものの単体テストを書く予定です。これは、ライブラリ全体を初めて書いたときです。だから、私はモカやジャスミンのような図書館を見てきましたが、それは良い選択のようです。私はモカにテストを書くことを考えています。しかし、私はこれらのテストをどのように始めるべきかについてはあまりよく分かりません。

また、サンプルコンシューマのような機能性をテストするテストを統合テストとして呼び出すか、単体テストと組み合わせてテストする必要がありますか?

誰かがgithubやMocha初心者のためのチュートリアルでいくつかのサンプルテストをお勧めすることができれば幸いです。他の単体テストのフレームワークも検討していきたいと思います。事前

+0

なぜ私は人が初心者のためにポイントを差し引いたか分かりません。 –

答えて

1

おかげで私はモカでテストを書くために考えています。しかし、私はこれらのテストをどのように始めるべきかについてはあまりよく分かりません。

ユニットテストは通常のみすることができますようにあなたができる限り、すべての機能をテストする必要があり意味の統合と回帰テストを除く機能テストを含みます。

基本的な例は次のとおりです。

function alwaysReturnTrue(){ 
    return True; 
} 
assertTrue(alwaysReturnTrue()); 
ユニットテストフレームワークについて

、などmochaJasmine、彼らはあなたのテストを実行するためのフレームワークを開始するためだけです。それらのほとんどは、assertTrueassertFalseassertEqual ...などの基本的なassert機能を提供します。

明らかに、これらのアサート方法では、すべてのコーナーケースをテストするには不十分です。これらのstuffsを処理するためのパラメータ

  • トリガ例外
  • フェイクXHRまたはサーバー
  • と呼ばれる一連

  • 関数と呼ば

    • コールバック関数
    • 機能、それが人気で完了することができ解は、sinonと呼ばれます。


      また、試料の消費者のような機能をテストするテストは、統合テストと呼ばれるべきである、またはそれらは、ユニットテストと組み合わせるべきか?

      いいえ、統合テストは通常、1つの機能ではなく、ソフトウェア全体のシーケンスを繰り返します。これらのこともまたスロンによって行うことができます。(フェイクXHRまたはサーバ)

      For example: without UI 
      Login() -> Send exit request to serverlet -> Logout() 
      Login() -> Send exit request with save="true" data to serverlet -> Logout() 
      

      上記のように、我々はまだ議論されていない別のテストをまだ持っています。これは最も複雑なテストである回帰テストと呼ばれています。これを行うには、2つの有名なUIテストライブラリseleniumphantomjsがあります。

      For example: with UI 
      Login() -> Click Button Exit() -> Logout() 
      Login() -> Click Checkbox A() -> Click Button Exit() -> Logout() 
      

      全体的に、完成ソフトウェアのテストプロセスは、三つのプロセスを持っています。しかし、現実世界では時間が限られています。プロジェクトの規模が小さい場合は、回帰または統合テストを省略することができます。

      step: unit test -> integration test -> regression test 
      time: (short)  (longer)   (very long) 
      
  • 関連する問題