Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7997235
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T14:55:33+00:00 2026-06-04T14:55:33+00:00

Current Solution So I have something very similar to [HttpPost] public ActionResult Upload() {

  • 0

Current Solution

So I have something very similar to

[HttpPost]
    public ActionResult Upload()
    {
        var length = Request.ContentLength;
        var bytes = new byte[length];

        if (Request.Files != null )
        {
            if (Request.Files.Count > 0)
            {
                var successJson1 = new {success = true};
                return Json(successJson1, "text/html");
            }
        }
...
        return Json(successJson2,"text/html");
    }

Unit testable solution?

I want something like this:

[HttpPost]
public ActionResult Upload(HttpRequestBase request)
{
    var length = request.ContentLength;
    var bytes = new byte[length];

    if (request.Files != null )
    {
        if (request.Files.Count > 0)
        {
            var successJson1 = new {success = true};
            return Json(successJson1);
        }
    }

    return Json(failJson1);
}

However this fails, which is annoying as I could make a Mock from the base class and use it.

Notes

  • I am aware this is not a good way to parse a form/upload and would
    like to say other things are going on here (namely that this upload
    can be a form or an xmlhttprequest – the action does not know which).
  • Other ways to make “Request” unit testable would also be awesome.
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T14:55:34+00:00Added an answer on June 4, 2026 at 2:55 pm

    You already have a Request property on your controller => you don’t need to pass it as action argument.

    [HttpPost]
    public ActionResult Upload()
    {
        var length = Request.ContentLength;
        var bytes = new byte[length];
    
        if (Request.Files != null)
        {
            if (Request.Files.Count > 0)
            {
                var successJson1 = new { success = true };
                return Json(successJson1);
            }
        }
    
        return Json(failJson1);
    }
    

    Now you can mock the Request in your unit test and more specifically the HttpContext which has a Request property:

    // arrange
    var sut = new SomeController();
    HttpContextBase httpContextMock = ... mock the HttpContext and more specifically the Request property which is used in the controller action
    ControllerContext controllerContext = new ControllerContext(httpContextMock, new RouteData(), sut);
    sut.ControllerContext = controllerContext;
    
    // act
    var actual = sut.Upload();
    
    // assert
    ... assert that actual is JsonResult and that it contains the expected Data
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have two projects in the current solution: abc.Dashboard abc.ThingyService abc.ThingyService needs to be
The question: What solution or tips would you have to deal with a very
In my current .Net 4.0 solution, I have one project containing a lot of
something seems very wierd to me, I have tried to look inside WCF with
My current solution will suck sometimes EDIT For those who don't understand,see this example:
My current solution consists of several Class Libraries and a Website. I'm in the
Following is how you would get the current solution directory from an add-in: _applicationObject
I'm using nhibernate validator in my current solution. Everythings is almost fine but... My
I want to create a Dynamic aspx Page in current solution through code-behind..forexample i
I am trying to use windows dll functionality in Linux. My current solution is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.