धाराप्रवाह कथनों का उपयोग करना, मैं जोर देने के लिए एक दिया स्ट्रिंग है कि या तो चाहते हैं दो तार में से एक:Fluent दावे: एक या एक और मूल्य का दावा
actual.Should().Contain("oneWay").Or().Should().Contain("anotherWay");
// eiter value should pass the assertion.
// for example: "you may do it oneWay." should pass, but
// "you may do it thisWay." should not pass
सिर्फ अगर मूल्यों का न तो निहित है, अभिकथन विफल होना चाहिए। यह काम नहीं करता है (यहां तक कि संकलित भी नहीं) क्योंकि Or()
ऑपरेटर नहीं है।
यह मैं इसे कैसे अब क्या है:
bool isVariant1 = actual.Contains(@"oneWay");
bool isVariant2 = actual.Contains(@"anotherWay");
bool anyVariant = (isVariant1 || isVariant2);
anyVariant.Should().BeTrue("because blahblah. Actual content was: " + actual);
यह वर्बोज़ है, और "क्योंकि" तर्क एक सार्थक उत्पादन के लिए मैन्युअल रूप से बनाए गए होना आवश्यक है।
क्या इसे और अधिक पढ़ने योग्य तरीके से करने का कोई तरीका है? एक समाधान भी Be()
, HaveCount()
आदि की तरह, अन्य धाराप्रवाह अभिकथन प्रकार के लिए आवेदन करना चाहिए ...
मैं .NET 3.5 पर FluentAssertions संस्करण 2.2.0.0 का उपयोग कर रहा है कि अगर मायने रखती है।
असल में, जब यह विफल रहता है, तो आप कोई सुराग नहीं क्या गलत है की है। –