공개 API만 사용하여 alexedwards/scs의 간단한 테스트

PHPz
풀어 주다: 2024-02-09 12:24:27
앞으로
1133명이 탐색했습니다.

仅使用公共 api 对 alexedwards/scs 进行简单测试

php Editor Banana 이 글에서는 공개 API를 사용하여 Alex Edwards/SCS에 대한 간단한 테스트를 수행하는 방법을 소개합니다. Alex Edwards/SCS는 애플리케이션에서 사용자 세션을 쉽게 관리할 수 있게 해주는 세션 관리용 PHP 라이브러리입니다. 공개 API를 사용한 테스트를 통해 라이브러리의 기능과 성능을 검증하고 실제 애플리케이션에서 안정성과 신뢰성을 보장할 수 있습니다. 이 기사에서는 간단한 테스트를 수행하는 방법을 단계별로 안내하고 테스트 결과의 분석 및 해석을 보여줍니다. 시작하자!

질문 내용

이 질문은 이 질문에 대한 후속 질문입니다. 사용하고 싶은 기능을 확인하기 위해 https://pkg.go.dev/github.com/alexedwards/scs/[email protected]에서 간단한 테스트를 하고 싶습니다. 기본적으로 저는 일부 데이터를 세션에 넣고 꺼내서 동일한지 확인하고 싶습니다. 다음과 같습니다:

으아악

이렇게 하면 패닉이 발생합니다: scs: 컨텍스트에 세션 데이터가 없습니다.

httptest 패키지의 예제를 복사해 보았으나 httptest.server가 http.handler를 구현하지 않습니다(servehttp 메소드가 누락됨).

으아악

alexedwards/scs 저장소의 테스트도 살펴봤지만 비공개 함수 addsessiondatatocontext를 사용합니다.

Go에서 세션을 테스트하는 가장 좋고 쉬운 방법은 무엇입니까?

솔루션

귀하의 코드에서 봤어요

으아악

테스트 서버를 추가하려고 합니다(ts) 传递给 sessionmanager.loadandsave。这将不起作用,因为 sessionmanager.loadandsave 需要 http.handler,并且 ts 的类型为 *httptest.server,而不是 http.handler.

대신 실제 핸들러를 sessionmanager。在创建测试服务器之前加载并保存에 전달해야 합니다.

이를 위해 sessionmanager.loadandsave 包装实际的处理函数(它确实返回 http.handler),然后再将其传递给 httptest.newserver를 사용할 수 있습니다.

으아악

사용하여 sessionmanager.loadandsave 中间件包装实际的处理程序函数来创建一个新的处理程序。然后将这个包装的处理程序传递给 httptest.newserver.

함께 합치면:

으아악

위 내용은 공개 API만 사용하여 alexedwards/scs의 간단한 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!