のモジュールをNode JS
に1つまたは2つ書きましたが、モジュールのテストは常にJavascript
になる傾向があります。これは有効なテスト戦略ですか、あるいはネイティブモジュールのコードをテストする(そしておそらくデバッグする)良い方法がありますか?ノードJS - C++プラグインのテスト戦略
1
A
答えて
1
純粋主義者はおそらく、「ユニット」テストではなく、「統合」テストであると言います。しかし私は個人的には気にしません。実際にあなたのモジュールとしてはとなります。この点もテストするのが理にかなっています。すべてのテストがこのように行われた場合、JS-> C++呼び出しを本当に完全にテストします。
だから私はこれが有効な戦略だと思います。それが十分に速い場合(JS-> C++テストスイートのオーバーヘッドは1秒以下です)、私はそれに留まります。
JSテストスイートが遅い場合、私は再考し、いくつかのC++フレームワーク(モジュールのパブリックAPIのC++部分を呼び出す)で純粋なC++単体テストを追加します。
(私は個人的には最初のものとしてhttps://github.com/unittest-cpp/unittest-cppを試してみましたが、構文と "複雑さ"の両方が大好きで、速く、依存性がなく、以前のすべての "暖かい"モード小さなC++の変更や再実行テストを行うには、通常、コンパイル+実行(〜数百の簡単なテスト)+表示結果)を実行するのに約0.5秒かかります。
これを行うと、C++だけでなく、JSから呼び出したときにもモジュールが動作することを確認するために、JS側でいくつかの統合テストを行う必要があります。
純粋なC++をJSとは別にコンパイルして実行する方法については、環境設定によって異なりますが、別のIDEを使用してC++ソースを扱います。これは、私ももちろんC++をネイティブにデバッグすることができます。
関連する問題
- 1. ノードjs passport-facebook戦略セイルの認証
- 2. Webサービスのテスト戦略
- 3. バックエンドのポストグルのテスト戦略
- 4. Laravel web apiのテスト戦略
- 5. Go for Mongodbのテスト戦略
- 6. 統合テスト戦略リソース
- 7. デフォルト戦略の戦略パターン
- 8. 春ブートアプリケーションのテスト戦略のアドバイス
- 9. 開発とオートグレーダーのpythonテスト戦略
- 10. Ruby on RailsとTwitterのテスト戦略OAuth
- 11. Couchbaseウォームアップの戦略
- 12. ASP.Netのキャッシュバスター戦略
- 13. UITableViewCellの戦略
- 14. データベースプルーニングの戦略
- 15. C#戦略パターン設計の問題
- 16. PHPアンケートの戦略
- 17. ネストされたグループ化戦略/アルゴリズムC#
- 18. solrインデックス戦略
- 19. Railsフラグメントキャッシュ戦略
- 20. Nhibernateフェッチ戦略
- 21. データベースシャーディング戦略
- 22. フェッチ戦略
- 23. Openlayers bbox戦略
- 24. ELBルーティング戦略
- 25. バレーキャッシュアップデート戦略
- 26. ロギング戦略
- 27. リファクタリングヘルプ - 戦略パターン
- 28. ソフトウェアデザイン戦略
- 29. JIRAコンポーネント戦略
- 30. Golangログ戦略