問題タブ [meck]

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.

0 投票する
1 に答える
538 参照

erlang - 複数のモックモジュールに対して奇妙な動作をするメック

私は次のモジュールを持っています

そして、上記のコードの次のテスト

テストを実行すると、次のエラーが発生します(簡潔にするために、エラーの一部のみを以下に貼り付けました)。以下のエラーを見ると、ファイルモジュールがモックされていない(または、を使用して他のモックを設定したときにファイルモジュールのモックが上書きされている)と感じていますmeck:new(lhttpc)。ここで何が問題になっている可能性がありますか?

0 投票する
2 に答える
806 参照

erlang - Erlang プロジェクトで meck をインストールするにはどうすればよいですか?

初めての Erlang プロジェクトを作成しました。シンプルな暗証番号ゲームです。私はOTPを絶対に避けようとしています.OTPは本当に混乱しているように見えます.

3 つのフォルダーがあります: ebin src test

Makefile を使用してすべてのコードをコンパイルし、テストを実行します。

人生は今夜まで良いです...

ゲームの入力 (および出力?) を模擬するために、Meck を使用することをお勧めしましたが、プロジェクトに統合するのに非常に苦労しています。

手動でインストールしてみました。Meck の git clone を行いました。Meck ディレクトリの eBin フォルダに「cd」してコンパイルし、すべてのシステム テストを実行して、基本的なコマンド「meck:new(dog)」を実行します。素晴らしい!

今、私は自分のプロジェクトで Meck を動作させる必要があります... Github Meck の readme で次の行を読みました:リリース フォルダを作成し、そのフォルダが ERL_LIBS 環境変数にあることを確認してください。」

しかし、Erland のコード パスに ebin ディレクトリを追加する方法がわかりません。リリース フォルダーがなく (これは鉄則だと思いますか?)、ERL_LIBS 環境変数を追加する方法もわかりません。 . だから私は立ち往生しています。

私が試したことは次のとおりです: コード パスに ebin ディレクトリを追加するために、makefile でこれを行いました (現在、デスクトップに meck ディレクトリがあります)。

そして、次のように ERL_LIBS を .bash_profile に追加しました。

Agnerもインストールしようとしましたが、インストール時にエラーが発生しました:

誰でも助けることができますか?試してみるべきいくつかのオプションがあったように感じますが、どれも機能していません。

アップデート:

@d11wtqのソリューションを読んだ後の私のmakeファイルは次のようになります。

最終更新:

ヒントに基づいて、これが現在機能する最終的なメイクファイルです。

0 投票する
2 に答える
5000 参照

erlang - Meckを使用してErlangでオブジェクトをモックする方法は?

さて、私はメックを使用していて、迷っています。私の最初の言語 (約 7 か月間書いてきた) は Ruby です。私はRubyのモックを取得します。誰かが私を助けてくれることを願っています。また、Erlang を書き始めて 1 週間しか経っていません。

更新されたコード (ただし、モックはまだ機能していません)...

次のようなErlang console_ioプロンプター モジュールがあります。

私のテストは次のようになります。

私が得ているエラーはこれです:

テストで gets 関数をモック (スタブ?) して、gets が "aaaa" を返すようにし、get_guess() でアサートすると、["a", "a", "a", "a" に等しい必要があります。 ]。

どうすればいいですか?

0 投票する
1 に答える
766 参照

erlang - foreach で meck を使用する正しい方法

meck を使用して gen_server をテストしていますmymodule特に、ここでhttpc提供されている手順に従って、meck を使用してモックを作成します。

テストから抽出したコードを次に示します。

このコードを使用すると、テストを実行できますが、まだ理解できないことが 2 つあります。

1)結果では、次のようなものが得られます。

各テストで 2 行ではなく 1 行のみを取得することは可能ですか?

2) 各テストにスピーキングの説明を追加するにはどうすればよいですか?

0 投票する
1 に答える
254 参照

erlang - gen_tcp 関数の Meck テストケースの作成

以下は、Erlang で作成された単純な IRC ボット モジュールです: IRC Bot

MECK を使用して関数 connect および parse_line のテストケースを作成するのを誰かが手伝ってくれませんか?

ありがとうございます。MECK を使用して入力/出力、リストに関する単純な Erlang テストケースを作成する方法は既に知っていますが、この IRC ボットは私の現在の能力をはるかに超えているようです。

0 投票する
1 に答える
88 参照

erlang - Meck がプロセスのガベージ コレクションを許可しない

純粋に負荷テストとシステムのプロファイリングのために、Meck を使用していくつかの外部サービスの動作をシミュレートしていますが、いくつかの問題が発生しています。基本的に、多くのワーカー プロセスが生成され、何も呼び出されない場合は 10 秒後にタイムアウトしますが、外部プロセスへの呼び出しをオーバーライドすると、期待どおりにタイムアウトして終了するように見えますが、ガベージ コレクションは行われません。より多くのワーカーが生成されるにつれて、アプリケーションのメモリ使用量がどんどん増えていきます

0 投票する
2 に答える
1100 参照

erlang - meck を使用して、同じメソッドを同じ引数で複数回呼び出す

ruby/rspec を使用すると、メソッドに対して行われたさまざまな呼び出しに対してさまざまな戻り値を受け取るために、次のようなことができることを知っています。

次のように、meck stub を 1 つの戻り値を持つメソッドにすることしかできませんでした。

ok最初の呼び出しと2 番目の呼び出しで返す方法はありok2ますか?