You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Flags]publicenumPermissions{None=0,Read=1,Write=2,Execute=4,All=Read|Write|Execute}// Single flag checksvarperm=Permissions.Read;perm.Should().HaveFlag(Permissions.Read);// Combined flagsvarcombined=Permissions.Read|Permissions.Write;combined.Should().HaveFlag(Permissions.Read);combined.Should().HaveFlag(Permissions.Write);
Property Change Notifications
publicclassPerson:INotifyPropertyChanged{privatestring_name;publiceventPropertyChangedEventHandlerPropertyChanged;publicstringName{get=>_name;set{_name=value;PropertyChanged?.Invoke(this,newPropertyChangedEventArgs(nameof(Name)));}}}// Test property change notificationsvarperson=newPerson();person.Should().RaisePropertyChangeFor<string>("Name");
publicstaticclassCustomAssertions{publicstaticvoidBeValidEmailAddress(thisStringAssertionsassertions){assertions.Match(@"^[^@\s]+@[^@\s]+\.[^@\s]+$","be a valid email address");}}// Usage"test@example.com".Should().BeValidEmailAddress();
Performance Considerations
Async Timeouts
// Avoid too short timeoutsawaitTask.Delay(100).Should().CompleteWithinAsync(TimeSpan.FromMilliseconds(50));// Might fail// Use reasonable timeoutsawaitTask.Delay(100).Should().CompleteWithinAsync(TimeSpan.FromSeconds(1));// Better
// Case sensitivity matters"test".Should().Be("TEST",StringComparer.OrdinalIgnoreCase);// Use explicit comparison"test".Should().BeEquivalentTo("TEST");// Alternative approach