public void AsyncCommand_ChangeCanExecute_Test() { // Arrange var canCommandExecute = false; var didCanExecuteChangeFire = false; var command = new AsyncCommand(NoParameterTask, commandCanExecute); command.CanExecuteChanged += handleCanExecuteChanged; bool commandCanExecute(object parameter) => canCommandExecute; Assert.False(command.CanExecute(null)); // Act canCommandExecute = true; // Assert Assert.True(command.CanExecute(null)); Assert.False(didCanExecuteChangeFire); // Act #pragma warning disable CS0618 // Type or member is obsolete command.ChangeCanExecute(); #pragma warning restore CS0618 // Type or member is obsolete // Assert Assert.True(didCanExecuteChangeFire); Assert.True(command.CanExecute(null)); void handleCanExecuteChanged(object sender, EventArgs e) => didCanExecuteChangeFire = true; }