Ich versuche FakeItEasy 1.25.3 zu bekommen, eine Ausnahme auf eine Eigenschaft zu werfen; Der Setter-Test funktioniert einwandfrei, aber der Getter löst keine Ausnahme wie erwartet aus. Was mache ich falsch?FakeItEasy Eigenschaft Getter Call-Regel nicht ausgelöst
public interface IMisc
{
int IntProperty { get; set; }
}
// Setter throws exception as expected.
[Test]
public void Property_Setter_Throws()
{
var driver = A.Fake<IMisc>();
A.CallTo(driver).Where(call => call.Method.Name == "set_IntProperty")
.Throws(new Exception());
var i = driver.IntProperty;
Assert.That(delegate { driver.IntProperty = 3; }, Throws.Exception);
}
// Getter does not throw exception as expected.
[Test]
public void Property_Getter_Throws()
{
var driver = A.Fake<IMisc>();
A.CallTo(driver).Where(call => call.Method.Name == "get_IntProperty")
.Throws(new Exception());
driver.IntProperty = 3;
Assert.That(delegate { var i = driver.IntProperty; }, Throws.Exception);
}
Versuchen Sie, diese Zeile 'Treiber zu kommentieren .IntProperty = 3; ' –
@YacoubMassad Das funktioniert, danke. Also ich vermute, mit der Eigenschaft Setter wird die Anrufregel für die Eigenschaft Getter entfernen? –
Ja. Wenn Sie einen Eigenschaftswert festlegen, richtet er den Getter so ein, dass er diesen Wert zurückgibt, wenn er aufgerufen wird. –