C#ユニットテストプログラムでNSubstitutionを使用しようとしています。C#のメソッドのNS置換?
私はmehtodの内部と呼ばれるメソッドに代入をしようとしています。ここ は一例です:
public class operation
{
public int addition(int a, int b)
{
return (a + b);
}
}
public class anotherClass
{
public int increment(int ax, int bx)
{
operation loc = new operation();
ax = loc.addition(ax,bx);
return (ax + 1);
}
}
は、それが私の主な機能の増分()メソッドを呼び出し、さらに()メソッドに置換を適用することは可能ですか?
increment()メソッドで呼び出したときに、add()メソッドで強制的に戻り値を設定したいとします。例えばecxeption throwを強制する。
また、私はコードを編集することができないので、インターフェイスの実装を追加することは良い解決策ではありません。
あなたの特定の問題を明確またはハイライトに追加の詳細情報を追加してください
、コンストラクタを介して、それを渡す:
は、その後、あなたが次のようにNSubstituteでそれを模擬することができます。例のコードは次のようになりますまさにあなたが必要とするものです。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にする方法については、How to Askページを参照してください。 – mybirthname
私は目的をより明確にしました。 @mybirthname –
NSubstituteは、既存のオブジェクトや "通常の" .NETオブジェクトを変更しないで、メソッドをオーバーライドできる新しいオブジェクトを返します(仮想メソッドを使用してインターフェイスまたはクラスを置き換えた場合)。問題のメソッドの中で新しい 'operation'を構築しているので、その新しいオブジェクトを変更することはできません。まず、NSubstituteに置換の変形を作成するように依頼しなければなりません。独自のオブジェクトを作成する代わりに、この新しいオブジェクトを使用するようにしてください。 –