Существует третий вариант, который использует Xania.AspNet.Simulator
сначала подготовьте действие контроллера
// arrange
var controllerAction = new AccountController().Action(c => c.ChangePassword())
.Authenticate(<username>, <roles>);
далее у вас есть два варианта в зависимости от вашей реализации,
В первом сценарии, если вы возвращаете HttpUnauthorizedResult, то есть при использовании атрибута Authorize или при переопределении AuthorizeCore вашего контроллера, вы можете проверить его следующим образом, в этом случае фактический метод действия не вызывается.
// act, assert
controllerAction.Authorize().Should().BeNull();
Второй сценарий - это когда вы фактически проверяете пользователя внутри метода действия:
// act
var result = controllerAction.Execute();
// assert
result.ActionResult.Should().NotBeOfType<HttpUnauthorizedResult>();