Насмешка HttpContext не работает

Вам необходимо очистить состояние после отправки. После вызова setState реактивный рендер будет вызван снова с пустыми значениями, которые мы установили, надеюсь, это поможет

 .then(function (response) {
        let successMessage = document.querySelector('.success-message');
         // here clear the state,
         this.setState({
           fullName: '',
           email: '',
           message: '',
         });
        successMessage.innerHTML = JSON.stringify(response.data.title);
    })
10
задан Blair Conrad 18 November 2008 в 21:54
поделиться

4 ответа

Это должно работать:

PostsController postsController = new PostsController(postDL);
var context = mocks.Stub<HttpContextBase>();
var request = mocks.Stub<HttpRequestBase>();
SetupResult.For(request.IsAuthenticated).Return(true);
SetupResult.For(context.Request).Return(request);    
postsController.ControllerContext = new ControllerContext(context, new RouteData(), postsController);
8
ответ дан 4 December 2019 в 01:03
поделиться

Это может быть несколько полезно Вам, работал на меня в подобном сценарии:

http://haacked.com/archive/2007/06/19/unit-tests-web-code-without-a-web-server-using-httpsimulator.aspx

2
ответ дан 4 December 2019 в 01:03
поделиться

Можно найти сообщение, которое я записал на этом, чтобы быть полезным в некотором роде http://santoshbenjamin.wordpress.com/2008/08/04/mock-httpcontext-and-session-state/

аплодисменты benjy

1
ответ дан 4 December 2019 в 01:03
поделиться

Теперь, для раскрытия, я должен все же пачкать руки с большей частью материала, Вы работаете с, однако:

Если Вы хотите дразнить IsAuthenticated, почему не только создают статический класс для возврата bool, который может управляться тестовым кодом?

Это немного грубо вокруг краев, но надо надеяться Вы получаете идею:

interface IAuthenticationChecker
{
    bool IsAuthenticated { get; }
}

public class MockAuthenticationChecker : IAuthenticationChecker
{
    static bool _authenticated = false;

    public static void SetAuthenticated(bool value)
    {
        _authenticated = value;
    }
    #region IAuthenticationChecker Members

    public bool IsAuthenticated
    {
        get { return _authenticated; }
    }

    #endregion
}

public class RequestAuthenticationChecker : IAuthenticationChecker
{

    #region IAuthenticationChecker Members

    public bool IsAuthenticated
    {
        get {
            if (HttpContext.Current == null)
                throw new ApplicationException(
                    "Unable to Retrieve IsAuthenticated for Request becuse there is no current HttpContext.");

            return HttpContext.Current.Request.IsAuthenticated;
        }
    }

    #endregion
}

Можно затем использовать ссылку на любого на уровне приложения, да это означает, что необходимо добавить ссылку на уровне приложения, и необходимо использовать другое касательно, а не Запрос, но Вы также получаете полный контроль над аутентификацией для тестирования :)

К вашему сведению - это полностью открыто для того, чтобы быть уничтоженным, я бросил его вместе приблизительно за минуту :)

0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: