3
あるときに、私はこのクラスのServizioControllerユニットテストをしようとしています、非オーバーライド部材に無効なセットアップを投げている:このクラスは、テストの一部またはある場合部品番号は、クラスがサービス・プロジェクトで
public class ServizioController : IServizioController
{
public virtual void PerformAction(Super.Core.Servizio servizio)
{
}
public virtual bool Start()
{ throw new NotImplementedException(); }
public virtual bool Stop()
{ throw new NotImplementedException(); }
public virtual bool Continue()
{ throw new NotImplementedException(); }
}
それは罰金行きます図書館プロジェクト。しかし、それはサービス・プロジェクトである場合には、部品番号が私にこのエラーがスローされます。
Invalid setup on a non-overridable member: x => x.Start()
私のテストは、次のようになります。
[TestMethod]
public void ServizioController_PerformAction_Start()
{
//Arrange
bool _start, _stop, _continue;
_start = _stop = _continue = false;
Super.Core.Servizio s = new Super.Core.Servizio()
{
Action = ServizioAction.START.ToString()
};
var mock = new Mock<ServizioController>() { CallBase = true };;
mock.Setup(x => x.Start())
.Callback(() => _start = true);
mock.Setup(x => x.Stop())
.Callback(() => _stop = true);
mock.Setup(x => x.Continue())
.Callback(() => _continue = true);
//Act
mock.Object.PerformAction(s);
//Assert
Assert.IsTrue(_start);
Assert.IsFalse(_stop);
Assert.IsFalse(_continue);
}
私は続けて喜んので、このクラスは、参加しようとしていますライブラリのクラス、誰かが私にこの動作を説明することができれば、私はより幸せになる...
おかげで、
ために仕事をする私は、検証機能のために知りませんでした。そのためのおかげで入力。しかし、私の設定はライブラリプロジェクトではうまくいき、サービスプロジェクトではうまくいきませんから、私の質問には答えられません。 – Arthis