看來,下面的代碼不表現爲我所期望的問題:FakeItEasy - 用new修飾符
using FakeItEasy;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var derived = A.Fake<IDerived>();
A.CallTo(() => derived.Dependency).Returns(null);
IBase baseObj = derived;
Assert.IsNull(baseObj.Dependency); //Fails
}
}
public interface IDerived : IBase
{
new IDependency Dependency { get; }
}
public interface IBase
{
IDependency Dependency { get; }
}
public interface IDependency
{
}
而不是返回空,假的很容易返回IDependency
假的實例。也許通過設計?無論如何,我將如何解決這個問題,並確保baseObj.Dependency
返回配置?
請注意,這個問題已經作爲GitHub問題533再次提出,[僞造包含帶有新修飾符的屬性的接口並轉換爲基接口將會轉移結果](https://github.com/FakeItEasy/FakeItEasy/issues/ 533)。 我希望現在大多數討論都在那裏進行。 –
好的,我當時在github上發佈它的要點是提交一個bug。儘管現在看來這是一項功能要求。 –