問題タブ [ex-unit]
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.
unit-testing - ExUnit テストでアンダースコア (_) を使用する
私のエリクサーアプリにはSome.Module.func/1
、2 つの数値のタプルを返すメソッドがあります。ExUnit でテストを書いていますが、タプルの最初の要素だけをテストする必要があり、2 番目の要素はあまり気にしません。
これまでのところ、私はこれをやってみました:
しかし、テストを実行すると、次のエラーが発生します。
これが機能しないのはなぜですか? また、テストで不要な結果を無視するにはどうすればよいですか?
elixir - ExUnit で共有の例を使用する方法はありますか?
RSpecでは、テストを作成し、 を使用して複数の場所から参照することができますshared_examples
。開発者の生活を大幅に簡素化します。
ExUnit で共有の例を使用する方法はありますか?
elixir - Elixir assert_raise は例外をキャッチしません
私はこのテストケースを書きました:
しかし、それは私が期待する方法で評価されません。myFn
は ArgumentError ( do: raise ArgumentError
) を発生させますが、 によってキャッチされませんassert_raise
。
ドキュメントの例はうまくいきます:
ドキュメントから:
assert_raise(exception, function)
実行exception
中に が発生したことを アサートします。function
レスキューされた例外を返し、それ以外の場合は失敗します
私のテストケースでは、引数が最初に評価されると思います。でも、どう書いたらいいの?
testing - ExUnit でテストするときに IO 入力を偽造するにはどうすればよいですか?
IO.gets
ユーザーからの入力を数回取得する Elixir プログラムをテストしたいと思います。テストでこの入力を偽造するにはどうすればよいですか?
注:それぞれに異なる値を返したいIO.gets
elixir - 許可された属性または必須の属性がゼロの無効な属性テストに合格するにはどうすればよいですか
Ecto 2.0 を使用して、このテストをパスさせようとしています:
モデルはこちら
キャストは、許可されたリストにないデータを単に無視するように見えるため、チェンジセットは有効であると見なされ、テストに失敗します。
io - 生成されたプロセスからキャプチャされた IO のテスト
次のメソッドで戻り値と IO 出力をテストしたいと思います。
ExUnit.CaptureIO
docsには、次のようなこれを行うサンプル テストがあります。
spawn
それを考えると、同様のアクションを実行するがed プロセスを使用する次のテストを記述できると思いました。
ただし、端末に出力が表示されていても、出力がなかったことを示す次のエラー メッセージが表示されます。
それで、マクロspawn
を使用する ed プロセスまたはメソッドのテストに関して、おそらく何かが欠けていますか? receive
テストに合格するように変更するにはどうすればよいですか?
elixir - フェニックスでセッションとの接続を使用するには?
認証プラグがあり、コントローラをテストしたいと考えています。問題は、このプラグのラインに
そして、このメソッドを使用しているときは常に nil です (以前はダーティハックを使用していましたが、もうやりたくありません):
この conn を使用してパッチ リクエストを送信していますが、そのセッションの user_id は nil です。IO.puts conn
私のプラグインでの結果:
この問題を解決し、認証を適切にテストするには、どうすればよいですか?
UPDATE認証プラグ
ルーター (ここからいくつかの部分を切り取りました):
testing - Elixir でのメソッド委譲のテスト
私は2つのモジュールを持っています:
Base.ModuleOne.do_stuff/1
別の名前空間で関数のテストをコピーして貼り付けずに委任をテストする適切な方法は何ですか?
elixir - テスト中に実際のフェニックスサーバーを実行するには?
モックできない外部ライブラリを使用して、ちょっとトリッキーな機能を実装しています。サーバーへの実際のリクエストを実装する必要があります。そう、
テストの実装中に Web サーバーを実行するにはどうすればよいですか?
PS 私config/test.exs
:
私はしようとしてcurl http://localhost:5000
いますが、得ていますcurl: (7) Failed to connect to localhost port 5000: Connection refused