は、私はクラスを持っていると言う:回避(NUnitの)
public class SomeClass {
public Model _model;
public SomeClass() {
_model = new Model();
}
public void Foo() {
_model.DoSomethingHeavy();
}
}
とテスト:
[TestFixture]
public class SomeClassTest {
[Test]
public void TestFooCalledSomethingHeavy() {
SomeClass someClass = NSubstitute.Substitute.For<SomeClass>();
someClass.Foo();
someClass._model.Received().DoSomethingHeavy();
}
}
I)が(そのsomeClass.Fooをテストしようとしています。 _model.DoSomethingHeavy()と呼ばれていますが、実際にはDoSomethingHeavyを実行したくありません。どうすればいい?それとも、これは間違ったアプローチですか?
コンパイラディレクティブに精通していますか?それを試してみてください。あるいは、 'IsTest'のための.Configファイルにエントリを入れて、実行時に.Configキーエントリに基づいてチェックしてください。 – MethodMan
私は私が従うかどうかわかりません。 .Configファイルは何をしますか?私はコンパイラ指令noに慣れていません。このテストはUnityのテストランナを介して実行されています。 – aaronjbaptiste
'#If TEST'でgoogle検索を行います。 ' Unityのテストランナーでコンパイラディレクティブを使用してC#stackoverflowを実行し、コンパイラディレクティブの内容と使用方法を読み上げてください。たとえば '#if Debug'のようなデバッグモードで動作していて、私が模擬的に渡すことができたので、モデルを渡すことがここの鍵でした。 – MethodMan