0
我想建立一個「工作」,只有當一些額外的變量是真/假的約束。NUnit約束,否定它之前它
所以我可以用這樣的:
Assert.That(animals, Is.SupersetOf(dogs).If(isSuperset));
的Not
約束否定之後會發生什麼,但沒有約束,以抵消之前會發生什麼。
我有這個至今:
public static Constraint If(this Constraint expression, bool isTrue)
{
return ((Constraint)(((IResolveConstraint)expression).Resolve()))
.And.Append(new EqualConstraint(isTrue).And.EqualTo(true));
}
但是,這並不工作。我怎樣才能做到這一點?
會你,如果整個包住斷言在? –
@Joe_DM是的,我可以做到這一點,但我想在斷言中執行if/else,以使測試更加簡潔。 – grokky
僅基於方法鏈接的工作原理,很難讓右側的方法覆蓋左側的方法。我能想到的唯一方法就是如果它全部延遲執行,然後以某種方式在調用之前手動評估表達式。我最初的懷疑是它無法完成。但我很高興錯了。我希望有人有你在找什麼。 –