実行時に注入されたプロパティを取得する次のコントラクトがあります。
public interface IBroker
{
IDriver Driver { get; }
}
public interface IDriver
{
void Save();
}
public class FileDriver : IDriver { }
public class SqlDriver : IDriver { }
テストの適合性が非常に大きいため、モックを 1 回で準備しています。また、次の方法で 2 つのバージョンのブローカーを準備しています。
var mockFileBroker = new Mock<IBroker>();
mockFileBroker.Setup(x => x.Driver).Returns(new FileDriver());
var mockSqlBroker = new Mock<IBroker>();
mockSqlBroker.Setup(x => x.Driver).Returns(new SqlDriver());
問題は、プロパティDriverを調査すると、両方のモックで常に SqlDriver 型であるということです...そのため、 Moqは常に最新の登録を使用してコントラクト IDriver を解決しているように見えます...この動作を回避するためにできることはありますか? ?