moq를 사용하여 키 (Request [key])로 요청 변수에서 값을 가져 오는 방법

Aal

ASP.NET Http 처리기를 단위 테스트하기 위해 moq를 사용하고 있습니다.

여기에서는 HttpRequestBase 클래스의 Request 속성을 사용하여 현재 요청에 대한 HttpRequest 인스턴스에 액세스하려고합니다. 우리가 알다시피 간단한 구문은 QueryString, Form, Cookies 또는 ServerVariables 컬렉션, 즉 Request [ "key"]에서 데이터에 액세스하는 데 사용할 수 있습니다. (핸들러의 ProcessRequest 메서드에서 사용되는 것)

하지만 쿼리 문자열 값을 얻을 수 없습니다. 코드는 다음과 같습니다.

테스트 클래스

    [TestMethod()]
    private static void MockProcessRequestExecution(AbcHandler abcHandler)
    {       
        NameValueCollection queryString = new NameValueCollection();
        queryString.Add("employeeid", "22"); 

        Mock<HttpContextBase> testHttpContext = new Mock<HttpContextBase>();
        Mock<HttpResponseBase> testHttpResponse = new Mock<HttpResponseBase>();
        Mock<HttpRequestBase> testHttpRequest = new Mock<HttpRequestBase>();

        testHttpContext.SetupGet(context => context.Response).Returns(testHttpResponse.Object);
        testHttpContext.SetupGet(context => context.Request).Returns(testHttpRequest.Object);
        testHttpRequest.SetupGet(request => request.QueryString).Returns(queryString);            

        testHttpContext.SetupGet(context => context.Request.QueryString).Returns(queryString);

        testHttpResponse.SetupSet(response => response.ContentType = "text/plain");

        abcHandler.ProcessRequest(testHttpContext.Object);

        testHttpResponse.VerifyAll();   
    }

핸들러 메서드 코드 내에서 다음과 같이 요청 변수를 추출합니다.

    ProcessRequest(HttpContextBase context)
    {
        var employee = context.Request["employeeid"];
    }

employeeid의 값이 null이됩니다.

context.Request.QueryString [ "employeeid"]로 작성된 경우 값을 얻지 만 ProcessRequest 메서드에 작성된 코드를 변경할 수 없습니다. 따라서 질문은 요청 키의 값을 얻는 방법입니다. "employeeid"

다니엘 JG

코드는 쿼리 문자열을 볼뿐만 아니라 요청 항목 속성 을 사용합니다. msdn에서 :

QueryString, Form, Cookies 또는 ServerVariables 컬렉션에서 지정된 개체를 가져옵니다.

Request 객체를 모의 할 때 코드에서 사용하는 Item 속성도 모의 처리해야합니다. ( HttpRequest실제 객체가 아닌 모의 객체를 사용하고 있기 때문에 QueryString 속성을 보는 실제 클래스 의 코드는 실행되지 않습니다!)

불행히도 다음과 같이 모든 키에 대해 모의에서 Item 속성을 수동으로 설정해야합니다.

testHttpRequest.SetupGet(r => r["employeeid"]).Returns("22");

여전히 NameValueCollection단위 테스트에서를 만들고 루프를 사용하여 쿼리 문자열의 각 키에 대한 Item 속성을 설정할 수 있습니다. 이렇게하면 Request["employeeid"]Request.QueryString["employeeid"](동일한 값을 반환 함)을 모두 사용하는 코드를 테스트 할 수도 있습니다 .

NameValueCollection queryString = new NameValueCollection{ {"employeeid", "22"} };
//Setup Request Item property for each key in the query string
foreach (var qsKey in queryString.AllKeys)
{
    var key = qsKey;
    testHttpRequest.SetupGet(r => r[key]).Returns(queryString[key]);    
}
//You can still mock the Request.QueryString using the same values
testHttpRequest.SetupGet(r => r.QueryString).Returns(queryString);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ 및 Boost Asio를 사용하여 HTTP 게시 요청에서 키 값을 가져 오는 방법

분류에서Dev

노드 js를 사용하여 https get 요청에서 요청 본문을 가져 오는 방법

분류에서Dev

SOAP UI에서 Groovy를 사용하여 배열 매개 변수 값을 동적으로 가져 오는 방법

분류에서Dev

API 요청 / 응답에서 JSON 매개 변수 값을 가져오고 사용하는 방법

분류에서Dev

아래 HTTP 요청을 사용하여 서버에서 데이터를 가져 오는 방법

분류에서Dev

Python을 사용하여 mongodb에서 키 값을 가져 오는 방법

분류에서Dev

GitHub API를 사용하여 GitHub pull 요청에서 댓글을 가져 오는 방법은 무엇입니까?

분류에서Dev

C #을 사용하여 API의 요청에서 헤더를 가져 오는 방법

분류에서Dev

GitLab에서 API를 사용하여 pull 요청 목록을 가져 오는 방법

분류에서Dev

Angular를 사용하여 객체 매개 변수로 API 가져 오기 요청을 보내는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 배열의 배열에서 키와 값을 가져 오는 방법

분류에서Dev

Python에서 변수 인 경로를 사용하여 가져 오는 방법

분류에서Dev

IronPython을 사용하여 Python 파일에서 변수를 가져 오는 방법

분류에서Dev

JMeter를 사용하여 동일한 엔드 포인트에서 가변 경로 매개 변수 및 요청 매개 변수를 사용하여 PUT 요청을 보내는 방법은 무엇입니까?

분류에서Dev

span에서 각 값을 가져오고 js 또는 jquery를 사용하여 모두 변수로 설정하는 방법은 무엇입니까?

분류에서Dev

파이썬을 사용하여 요청 헤더에 클라이언트가 삽입 한 새 매개 변수를 가져 오는 방법은 무엇입니까?

분류에서Dev

WHERE 절과 URL에서 설정된 변수를 사용하여 PHP 코드로 MySQL 데이터베이스에서 값을 가져 오는 방법

분류에서Dev

변수를 사용하여 Swift에서 POST 요청을 보내는 방법

분류에서Dev

SqlKata (Dapper)를 사용하여 여러 열에서 IEnumerable로 값을 가져 오는 방법

분류에서Dev

Bash를 사용하여 탭으로 구분 된 변수의 값을 가져 오는 방법

분류에서Dev

사전 내에있는 키를 기반으로 키 값을 가져 오는 방법은 무엇입니까?

분류에서Dev

Java에서 루프를 증가시키면서 숫자가 증가하는 변수를 가져 오는 방법 (해당 변수의 값을 얻기 위해)?

분류에서Dev

PHP에서 $ _POST를 사용하여 선택 요소 값을 가져 오는 방법

분류에서Dev

Python의 요청을 사용하여 함수 매개 변수를 cURL 요청으로 전달하는 방법

분류에서Dev

javascript 및 jquery를 사용하여 HTML 요소에서 특정 HTML 요소 필드로 값을 개별적으로 가져 오는 방법

분류에서Dev

사전에 매핑 된 키를 확인하여 사전에서 값을 가져 오는 방법

분류에서Dev

요청을 사용하여 웹 페이지에서 부품 번호를 가져 오는 올바른 방법을 찾을 수 없습니다.

분류에서Dev

NextJS의 동적 가져 오기를 사용하여 구성 요소에 값을 전달하는 방법

분류에서Dev

Spring MVC를 사용하여 URL에서 요청 매개 변수 값을 숨기는 방법

Related 관련 기사

  1. 1

    C ++ 및 Boost Asio를 사용하여 HTTP 게시 요청에서 키 값을 가져 오는 방법

  2. 2

    노드 js를 사용하여 https get 요청에서 요청 본문을 가져 오는 방법

  3. 3

    SOAP UI에서 Groovy를 사용하여 배열 매개 변수 값을 동적으로 가져 오는 방법

  4. 4

    API 요청 / 응답에서 JSON 매개 변수 값을 가져오고 사용하는 방법

  5. 5

    아래 HTTP 요청을 사용하여 서버에서 데이터를 가져 오는 방법

  6. 6

    Python을 사용하여 mongodb에서 키 값을 가져 오는 방법

  7. 7

    GitHub API를 사용하여 GitHub pull 요청에서 댓글을 가져 오는 방법은 무엇입니까?

  8. 8

    C #을 사용하여 API의 요청에서 헤더를 가져 오는 방법

  9. 9

    GitLab에서 API를 사용하여 pull 요청 목록을 가져 오는 방법

  10. 10

    Angular를 사용하여 객체 매개 변수로 API 가져 오기 요청을 보내는 방법은 무엇입니까?

  11. 11

    PHP를 사용하여 배열의 배열에서 키와 값을 가져 오는 방법

  12. 12

    Python에서 변수 인 경로를 사용하여 가져 오는 방법

  13. 13

    IronPython을 사용하여 Python 파일에서 변수를 가져 오는 방법

  14. 14

    JMeter를 사용하여 동일한 엔드 포인트에서 가변 경로 매개 변수 및 요청 매개 변수를 사용하여 PUT 요청을 보내는 방법은 무엇입니까?

  15. 15

    span에서 각 값을 가져오고 js 또는 jquery를 사용하여 모두 변수로 설정하는 방법은 무엇입니까?

  16. 16

    파이썬을 사용하여 요청 헤더에 클라이언트가 삽입 한 새 매개 변수를 가져 오는 방법은 무엇입니까?

  17. 17

    WHERE 절과 URL에서 설정된 변수를 사용하여 PHP 코드로 MySQL 데이터베이스에서 값을 가져 오는 방법

  18. 18

    변수를 사용하여 Swift에서 POST 요청을 보내는 방법

  19. 19

    SqlKata (Dapper)를 사용하여 여러 열에서 IEnumerable로 값을 가져 오는 방법

  20. 20

    Bash를 사용하여 탭으로 구분 된 변수의 값을 가져 오는 방법

  21. 21

    사전 내에있는 키를 기반으로 키 값을 가져 오는 방법은 무엇입니까?

  22. 22

    Java에서 루프를 증가시키면서 숫자가 증가하는 변수를 가져 오는 방법 (해당 변수의 값을 얻기 위해)?

  23. 23

    PHP에서 $ _POST를 사용하여 선택 요소 값을 가져 오는 방법

  24. 24

    Python의 요청을 사용하여 함수 매개 변수를 cURL 요청으로 전달하는 방법

  25. 25

    javascript 및 jquery를 사용하여 HTML 요소에서 특정 HTML 요소 필드로 값을 개별적으로 가져 오는 방법

  26. 26

    사전에 매핑 된 키를 확인하여 사전에서 값을 가져 오는 방법

  27. 27

    요청을 사용하여 웹 페이지에서 부품 번호를 가져 오는 올바른 방법을 찾을 수 없습니다.

  28. 28

    NextJS의 동적 가져 오기를 사용하여 구성 요소에 값을 전달하는 방법

  29. 29

    Spring MVC를 사용하여 URL에서 요청 매개 변수 값을 숨기는 방법

뜨겁다태그

보관