>  기사  >  백엔드 개발  >  공개 API만 사용하여 alexedwards/scs의 간단한 테스트

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

PHPz
PHPz앞으로
2024-02-09 12:24:271132검색

仅使用公共 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으로 문의하시기 바랍니다. 삭제