問題タブ [testunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - JRubyとTest::Unitのassert_raise
assert_raise
Java例外を認識させるのに問題があります。
できます
これは問題なく動作しますが、より具体的にしようとすると
エラーが発生します
ただし、begin/rescue/end
例外をキャッチするために使用できます。
私が間違っていることはありますか、それともこれはの失敗Test::Unit
ですか?
ruby - Shouldashouldメソッドからアサーションメソッドへのアクセスを取得する
次のようなXPath条件に対するコントローラーの応答をテストするshouldaマクロ/メソッドがあります。
XPathマッチングと組み込みアサーションはうまく機能します。ただし、一致要素を1つだけ存在させたいテストケースが1つあります。これはオプションのブロックの仕事です。XPathの一致を呼び出し元に公開して、追加の/コンテキスト固有のアサーションを実行できるようにします。
残念ながら、実際にブロックを渡すと、次のようになります。
...このエラーが発生します:
NoMethodError:Users :: SessionsControllerTest:Classの未定義のメソッド `assert_equal'
これは(私が理解しているように)Shouldaの動作方法によるものです。「should」呼び出し(ブロックを含む)に渡されるパラメーターは、テストクラスのインスタンスではなく、テストクラスのコンテキストで定義されます。Test :: Unit :: Assertions.assert *はモジュールインスタンスメソッドであるため、便利にアクセスできません。
だから、私の質問は:Test :: Unit :: Assertionsからassert*メソッドにあまり問題なくアクセスするための便利で慣用的な方法はありますか?ソリューションはShouldaで機能する必要がありますが、Shouldaに依存する必要はありません。まっすぐなRubyの方法で十分です。
ruby - Test::Unit::TestCase でティアダウンが実行されることを確認しますか?
私はTest::Unit::TestCase
いくつかの単体テストを書くために使用しています。現在、setup
ディスク上のいくつかのフィクスチャ ファイルとフォルダを移動および変更する機能があります。(これは現時点では必要悪です。) テストがクラッシュした場合、teardown
メソッドは呼び出されず、ファイルとフォルダーが邪魔になります。次にテストを実行すると、このようなフォルダーが既に存在する ( Errno::EEXIST
) と表示され、停止して残りのファイルを削除する必要があります。
どうすればensure
常にteardown
実行されますか? (他の言語ensure
と同じ考え方です。)finally
ruby-on-rails - Rails で assert_routing を介してホスト制約のあるルートをテストする
ホストをチェックするために制約を使用しているルートと、本質的に同じであるがホスト制限のないルートがあります (これらは実際には名前空間ですが、物事を簡単にするために、この例で行います):
get "/page_key"
これらは、ブラウザ経由でアクセスするときや、ホストを定義して実行するときの統合テストなどで、期待どおりに機能します。
ただし、これらのルートが機能することを確認するテストを作成したいのですが、これまでのところ、次のテスト (現在ActionController::IntegrationTest
ホストを設定できるようになっている) が制約のないものと一致しているため、あまり運がありません。
Constraint proc で env をダンプしようとすると、得られるのは--- :controller
.
assert_routing を取り除き、get :show
呼び出しとダンプを実行@controller
すると、正しいコントローラーに解決されます (これらのルートはすべて HTTP 要求を介して正常に機能するため、予想どおり)。
ruby-on-rails - レールのテスト速度を上げることはできますか?
私は最近 TDD に移行しましたが、コードベースのサイズと複雑さが増すにつれて、テストを実行するたびに、フレームワークが読み込まれるまでの待ち時間がますます長くなっていることに気づきました。
rspec の spec_server は知っていますが、Test::Unit を shoulda で使用しています。Snailgun ( http://github.com/candlerb/snailgun ) を試してみましたが、速度がほとんど向上していないことに気付きました。spork-testunit ( http://github.com/timcharper/spork-testunit )も試しましたが、既存のテストと完全には互換性がありません。
テストの実行の遅れは明確な問題点であり、TDD (少なくとも Rails では) から遠ざかっています。他のオプションを知っている人はいますか?
ruby - Rubyで抽象単体テストを継承するにはどうすればよいですか?
わずかに異なるセットアップ方法で多くの一般的なテストを共有する必要がある2つの単体テストがあります。私が次のようなものを書くと
その場合、Concrete1はAbstractからテストを継承していないようです。または、少なくとも私はそれらをEclipseで実行させることはできません。Concrete1を含むファイルに対して「すべてのテストケースを実行」を選択すると、Abstractは実行されたくありませんが、実行されます。Concrete1を指定すると、テストはまったく実行されません。Concrete1でtest_1を指定すると、それが見つからないと文句を言います( "uncaught throw:invalid_test(ArgumentError)")。
Rubyは初めてです。ここで何が欠けていますか?
ruby - スレッドで例外の単体テストを行う方法
次のようなコードで例外が発生したことを単体テストする必要があります。
これを機能させる方法は?
ruby - ruby 1.9.1 の test/unit で使用できるコマンド ライン オプションは何ですか?
Ruby 1.9.1 で Test::Unit 互換レイヤーを使用している場合、どのコマンド ライン オプションを使用できますか?
背景:
ruby 1.8.7 で使用できるが、test-unit gem がない ruby 1.9.1 では使用できないコマンド ライン オプションに関する情報を提供します。Ruby 1.9.1 rdocの Test および Test::Unit を調べても役に立ちません。
Ruby 1.9.2 以降では、--help
オプションの有用な出力が得られます。
ruby-on-rails - Test::Unit で特定のテストをスキップする方法
私のプロジェクトの 1 つで、複数のバックエンド システムと連携する必要があります。それらのいくつかはドキュメントがやや不足しているため、部分的には、すべてが期待どおりに機能することを確認するためだけに、いくつかのテストサーバーとやり取りするテストコードをいくつか持っています. ただし、これらのサーバーへのアクセスは非常に遅いため、テスト スイートを実行するたびにこれらのテストを実行したくありません。
私の質問は、特定のテストをスキップしたい状況にどのように対処するかです。現在、環境変数「BACKEND_TEST」と、スキップしたい各テストに対して変数が設定されているかどうかをチェックする条件ステートメントを使用しています。しかし、各テストの先頭に余分な行を追加せずに、テスト ファイル内のすべてのテストをスキップしたい場合があります。
他の状況で flexmock を使用するため、テスト サーバーと対話する必要があるテストは多くありません。ただし、現実から目を背けることはできません。
この質問のタイトルからわかるように、私は Test::Unit を使用しています。さらに、違いがあれば、そのプロジェクトは Rails プロジェクトです。