>백엔드 개발 >Golang >gorm 및 sqlmock을 사용한 테스트

gorm 및 sqlmock을 사용한 테스트

王林
王林앞으로
2024-02-05 21:39:091165검색

使用 gorm 和 sqlmock 进行测试

질문 내용

sqlmock과 gorm을 사용하여 go 람다 함수에 대한 테스트를 작성하려고 합니다.

테스트하고 싶은 기능은 다음과 같습니다.

으아아아

이것은 내 테스트입니다:

으아아아

내가 뭘 잘못했는지 모르겠어요. sqlmock을 처음 사용해봤습니다. 일부 장소를 읽었으며 코드가 좋아 보이지만 결과를 얻지 못했습니다. 내 실수는:

으아아아

내가 뭘 잘못했는지 아세요?


정답


제가 보기에 가장 큰 문제는 쿼리를 기대하는 방식에 있습니다.

대신 으아아아

다음이 있어야 합니다.

으아아아

이것은 트랜잭션을 사용하고 있음을 시뮬레이션에 알려줍니다(expectbeginexpectcommit 围绕删除),查询是使用参数进行的(withargs),以及查询的返回结果是什么(willreturnresult)

테이블 이름(mysql 관용어) 및 테이블 이름 주변에 ``와 같은 몇 가지 미묘한 변경 사항이 있습니다(gorm은 일반적으로 이름을 복수형으로 사용하므로 availability 上实现 tablename에 있거나 기본적으로 가용성으로 설정됩니다).

이러한 모든 문제를 확인하는 가장 좋은 방법은 오류를 반환하도록 docleanup 변경한 다음 테스트에서 확인하는 것입니다.

으아아아

이 작업을 수행하고 현재 코드를 사용하면

를 얻을 수 있습니다. 으아아아

이는 sqlmock이 시작될 것으로 예상하지 않음을 알려주며, 이를 수정하면 이 답변의 첫 번째 부분에서 해결된 다른 오류를 얻을 수 있습니다.

위 내용은 gorm 및 sqlmock을 사용한 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제