私は、Moq で使用するための優れたテスト可能なリポジトリ クラスを作成しようとしています。GetAll
セレクター メソッド ( 、Get
、 ...)を複製したくありません。私の実装は正常に動作しますが、SonarSource はエラーRSPEC-1699 を報告します。より良い実装を知っている人はいますか?
var areas = new Area[] { ... };
var areaRepositoryMock = new Mock<BaseAreaRepository>() { CallBase = true };
areaRepositoryMock.Setup(m => m.Initialize()).Returns(areas);
基本クラス
public abstract class BaseAreaRepository
{
protected Area[] _areas;
protected BaseAreaRepository()
{
this._areas = this.Initialize();
}
public abstract Area[] Initialize();
public Area[] GetAll()
{
return this._monitoredAreas;
}
public Area Get(int id)
{
return this._areas.FirstOrDefault(o => o.Id.Equals(id));
}
}
MyAreaRepository
public class MyAreaRepository : BaseAreaRepository
{
public override Area[] Initialize()
{
return //Load data from an other source
}
}