2016-07-19 7 views
0

NightWatch for(Behavior driven)を実装していくつかのウェブサイトをテストしました。それらはすべてバックエンド駆動(Java、JSP)です。バックエンド駆動のウェブサイトのユニットテストのユニットウェア

従業員の中には間違った選択肢があり、ユニットテストの枠組みでなければなりません。

フロントエンドには「ユニット」はありません。ページにあるHTMLに反応し、プラグイン/ Vanilla JS Classをバインドします。

私が間違っているのは、単なる値を返す関数が(ほとんど)存在しないため、単体テストはフロントエンドにとって単純なことではありません。それらはすべてHTML要素へのページ・ロードに束縛されています。例えば

:ページからいくつかのHTMLを追加/削除/変更します

<div data-components="myComponent"><div>inner</div></div> 

ロードいくつかのJavaScript(myComponentという)、。それは何も返さない。ページを更新します。

すべてのアドバイスは大歓迎です。

答えて

2

ユニットテストは、コードをテストする多くの方法の1つです。まだテストが行​​われていない既存のコードがある場合は、単体テストでテストすることはできません。アプリケーションを設計するときは、ユニットテストを考慮する必要があります。優れた設計とテスト容易性が両立する傾向にあるため、単体テストが一般的です。したがって、単体テストは、実際には悪い単体テストを書くことは可能ですが、コードの品質の問題として見ることができます。

言われているように、ユーザーインターフェイスのようなものをテストすることは、単体テストの範囲外になる傾向があります。あなたが有用なテストを書くことができるような方法であなたのUIコードを設計することは、通常不可能です。ここでのアプローチは、テストできない部分からできるだけ多くの論理を取り除くことです。

私の会社では、サーバーサイドコードとクライアントサイドコード(JS)用の大規模なユニットテストスイートと、いくつかのSeleniumテストがあります。あなたの仕事がセレンテストでテスト可能なものだけを盛り上げることは、非常にうまくいくかもしれません。

どのようなものを作成しているかによって異なります。ユーザーインターフェイスの中には、非常に複雑で精巧なものもあります。同時に、単体テストの対抗勢力を探します。

+0

私は思っています。SPA(ak Angular etc.)ではなく、1つのモデルを使って1つのビューを呼び出します。そして、用意されたHTMLを返します.SS関数でさえも、プラグイン 'または' HTMLをいくつか追加する '..あなたができることは、関数を呼び出して、DOMにいくつかの変更が反映されているかどうかを確認することです – DutchKevv

関連する問題