Impersonating Users in Laravel And Example of TDD using PHPUnit

안녕 얘들 아, 우리 채널에 오신 것을 환영합니다 오늘은이 비디오에서 가장 한 사용자에 대해 이야기하겠습니다

프로젝트의 상황을 고려하십시오 사용자가 설명 할 수없는 상황이 발생합니다 이러한 상황에서 문자 그대로 흉내낼 수 있다면 유용합니다 로그인 자격 증명을 쓰지 않고 계정에 로그인하고 다음 작업을 수행하십시오 그들을 대신해서

또는 사용자가 오류가 발생하면 자신의 오류를 볼 수 있습니다 이 동영상에서 개발할 데모 앱은 다음과 같습니다 이미 Harish라는 관리자 계정으로 로그인하고 있습니다 관리자 슬래시 가장 자리 페이지로 이동합니다 여기서 우리는 다른 사용자의 이메일 주소 (예 : john@example

com)를 입력 할 수있는 간단한 양식을 가지고 있습니다 클릭 할 때 가장 버튼을 클릭합니다 자, 이제 우리는 그 이메일 주소를 사용하여 로그인했습니다 이제 우리는 자신이 필요한 모든 것을 할 수 있습니다 여기서 버튼을 가장하는 것을 중지했습니다

이제이 버튼을 클릭하면 관리자 계정 Harish로 다시 전환됩니다 이 기능을 개발하기 위해 PHPUnit 테스트 케이스도 작성합니다 따라서이 채널을 처음 사용하는 경우 앞으로 이동하기 전에 빨간색 가입 버튼을 누르십시오 벨 아이콘을 누릅니다 따라서 곧 출시 될 비디오를 놓칠 수 없습니다

이제 시작하겠습니다 먼저, 새로운 Laravel 프로젝트를 만들 것입니다 가장이라는 이름을 지어 봅시다 다음으로 cd 가장합니다 이 프로젝트를 편집기에서 엽니 다

이제 우리는 dot env 파일로 데이터베이스를 구성 할 것입니다 이미 mysql에 데이터베이스를 만들었습니다 그래서, 여기서 데이터베이스 이름은 가장이고, DB 사용자 이름은 qirolab이고 암호는 비밀입니다 터미널에서, 나는 php artisan을 실행하여 빠른 인증을 생성하는 인증을한다 발판

다음으로 우리는 PHP artisan migrate를 실행하여 데이터 베이스 다음 단계는 테스트 케이스를 위해 phpunitxml 파일을 구성하는 것입니다 아래쪽에서 데이터베이스 자격 증명을위한 환경 변수를 추가 할 것입니다 여기에 DB_CONNECTION sqlite를 추가 할 것입니다

config databasephp 파일이 보이면 여기 sqlite, 우리는 DB 데이터베이스를 추가해야합니다 그래서 phpunitxml에서 우리는 메모리에 DB_DATABASE를 추가 할 것입니다 테스트를 실행하기 위해 일반적으로 SQLite in-memory 데이터베이스를 사용합니다

테스트를 위해 데이터베이스의 트랜잭션, SQLite 메모리 내에서 이러한 트랜잭션 수행 매우 빨라서 몇 초 안에 수백 건의 테스트를 수행 할 수 있습니다 이제 모든 기본 구성이 완료되었습니다 이제 우리는 사용자 기능을 가장하려고 시도 할 것입니다 시험을 치러 시작할 것입니다 당신은 우리가 ExampleTest

php 파일을 가지고 테스트 기능에서 볼 수 있습니다, 그럼, 이것을 삭제하자 Unit 디렉토리에서 ExampleTestphp 파일을 볼 수도 있습니다 이것도 삭제하십시오 다음, 터미널에서, 나는 PHP를 장인이 테스트를 가장 할 사용자 테스트를 실행합니다 그것은 테스트 기능 디렉토리에 ImpersonateUserTest

php 파일을 만듭니다 상상할 수있는 것처럼, 이와 같이 사용자가 로그인 할 수있는 엔드 포인트를 노출하면 사용자라면이 끝점이 확실히 보호되어야합니다 관리자 만 열 수 있습니다 이를 위해 관리자가 아닌 사용자가 가장 할 수없는 페이지를 만들 수 없습니다 이제 우리가 손님이라면 관리자 슬래시에 액세스 할 수있는 권한이 없습니다

엔드 포인트를 가장하려고합니다 따라서 관리자 슬래시를 가장하려고 시도하면 가장 할 수 있습니다 로그인 페이지로 리디렉션됩니다 이제 이것을 테스트하기 위해 터미널에서 우리는 공급 업체 bin phpunit, 내 터미널에서 필자는 PHPUnit 별칭을 만들었습니다 따라서이 긴 경로를 실행하는 대신 PHPUnit을 실행할 수 있습니다

여기에 응답 상태 코드 [404]가 예상대로 생성됩니다 끝 점이 아직 없습니다 이제 webphp로 이동하여 여기에 경로를 추가하겠습니다 경로는 관리자가 가장합니다

나는 항상 Admin 네임 스페이스에 관리 경로를 추가하려고합니다 여기 컨트롤러는 Admin ImpersonateController @ index입니다 이제 PHPUnit을 다시 실행하면 500 개의 상태 코드가 생성됩니다 그러나 그것은 어떤 오류에 대한 피드백을 표시하지 않았습니다 그럼, 우리가 뭘할지, 여기 전화 할게

이것은 예외 처리 방법이 없습니다 PHPUnit을 다시 실행하십시오 이제 문제에 대한 적절한 피드백을 얻었습니다 이 가장 컨트롤러는 존재하지 않습니다 나는 항상 예외 처리없이 우리의 테스트를 좋아한다

테스트가 실패 할 경우 항상 적절한 피드백을보고 싶어합니다 따라서 문제가 무엇인지 쉽게 확인할 수 있습니다 그래서, TestCasephp에서, 여기서 우리는 public function setUp을 말할 것입니다 부모 집합 여기서 예외 처리없이 이것을 호출 할 것입니다

이제 여기서이를 삭제할 수 있습니다 다시 phpunit을 실행 해 봅시다 여기에 올바른 피드백이 있습니다이 가장 컨트롤러는 존재하지 않습니다 이제이 컨트롤러를 만들어 보겠습니다

PHP 장인 확인 : 컨트롤러 Admin \ ImpersonateController PHPUnit 실행 이제 인덱스 메소드가 존재하지 않습니다 이 방법을 만들어 보겠습니다 App Http 컨트롤러 Admin Impersonate 컨트롤러, 공개 함수 인덱스 다시 테스트를 실행하십시오 이제 우리는 200 개의 상태 코드를 얻습니다 그것은 인덱스 메소드를 치고 있습니다

하지만 여기서 우리는 로그인 페이지로 리다이렉트하는 것을 주장하고 싶다 자, 이제이 메소드를 작성해 보겠습니다 이 미들웨어와 패스 인증 그럼 다시 한번 시도해 봅시다 이번에는 예상대로 인증되지 않은 예외가 발생합니다

그래서, 초록색으로 만드십시오 여기 TestCasephp에서 이것을 주석 처리 할 수 ​​있습니다 실행 phpunit, 이제 그것은 녹색과 우리의 테스트가 전달됩니다 또는 우리가 할 수있는 일을 주석 처리하십시오

여기에 Exception Handling을 추가 할 수 있습니다 다시 한 번 쏴, 우리는 녹색이된다 로그인하지 않은 상태에서이 엔드 포인트를 방문하면 로그인 페이지로 이동해야합니다 그러나 사용자가 로그인 한 것으로 가정 해 봅시다 그래서 우리는 이것을 사용자라고합니다

이 사용자를 생성합시다 공장 App 사용자 클래스 만들기 그리고 여기 똑같은 일을 다시하고 상태 코드를 주장 할 것입니다 403입니다 그래서이 방법으로 우리는 당신이 손님이고이 일을하려고한다면 그것이 안된다는 것을 확인할 수 있습니다 일하다

그리고 일반 사용자라면 아무 것도 작동하지 않을 것입니다 우리는 테이블 사용자가 아니더라도 다시 실행할 것입니다 이것은 우리가 데이터베이스 새로 고침을 사용해야하기 때문입니다 테스트가 끝난 후 테스트 및 롤백 다시 한 번 실행하면 403 번이 아니라 200 번 상태가됩니다

이제 여기에는 커스텀 미들웨어 또는 다른 것이 필요합니다 따라서 간단하게 유지하고 사용자가 무언가를 관리 할 수 ​​있는지 여부를 알려 드리겠습니다 그렇게 이제 부팅 서비스 방법에 대한 인증 서비스 제공 업체로 이동합니다 이전에 게이트를 말할 것입니다

함수를 호출하면 사용자를 받아 들일 것이고 여기서는 필요한 논리를 수행하여 현재 인증 된 사용자에게 작업 수행 권한이있는 경우 그럼 여기서 뭘 할거야 사용자 테이블에 역할 열이 있다고 가정 해 보겠습니다 사용자 역할이 admin 인 경우 true를 반환합니다 이제 사용자 테이블에 역할 열을 추가해 보겠습니다 데이터베이스 이주에서 사용자 테이블 이주 파일을 작성하고, 여기에 테이블 문자열 역할을 추가하고 기본값은 회원

phpunit을 실행하고, 클래스 앱 제공 업체가 없습니다 여기에 타이핑 실수가 있습니다 이미 알아 차렸을 것입니다 다시 테스트를 실행하십시오 응답 상태 코드 403은 리디렉션 상태 코드가 아닙니다

우리는 여기서 실패하고 있습니다 이것은 우리가 여기에서 인증 미들웨어를 삭제했기 때문입니다 이것을 다시 추가합시다 PHPUnit과 우리는 녹색 얻을 지금까지 우리는 브라우저에서 이것을 테스트하지 않았습니다

브라우저에서 테스트하기 전에 PHP 숙련자 마이그레이션을 실행 해 봅시다 새로 고침 사용자 테이블에 새 역할 열을 추가했기 때문입니다 다음으로, 나는 터미널을 나눌 것이고 여기서 나는 달릴 것이다 php artisan serve 브라우저에서이 URL 열기 손님으로 admin / impersonate 경로를 방문하려고하면 즉시 리디렉션됩니다 로그인 페이지

이제 새 계정을 등록하십시오 Harish harish@examplecom 암호 및 등록 다시 admin / impersonate 경로를 방문하려고 시도하면 이번에는 403 오류가 발생합니다 관리자가 아닙니다

자, 터미널, php artisan tinker로 가자 사용자가 동일 함 App 사용자의 첫 번째 사용자 역할이 admin과 같습니다 다음으로 사용자 저장 이제 우리는 admin 사용자입니다 이번에는 admin / impersonate에 방문하면 이번에이 페이지에 액세스 할 수 있습니다 물론 우리는 컨트롤러에서 아무것도 인쇄하지 않았기 때문에 여기서는 아무 것도 볼 수 없었습니다

동작 그것을 확인하기 위해 echo "hello"가 출력됩니다 다음 단계는이 페이지에 대한보기를 만드는 것입니다 이제이보기를 만들어 보겠습니다 뷰 관리자 가장 인덱스를 반환합니다

이 인덱스 블레이드 파일을 작성해 보겠습니다 리소스보기 admin impersonate indexbladephp 다음으로 auth loginblade

php에서 일부 마크 업을 강요합니다 여기에서는 사용자를 가장하는 말을 할 것입니다 양식 작업은 admin slash impersonate이며, 이메일 필드가 필요합니다 다음으로이 비밀번호 필드가 필요 없습니다 그래서 이것을 지우십시오

그리고이 기억 영역도 필요하지 않습니다 다음은이 로그인 버튼으로 가장하는 것입니다 그리고 우리는 이것을 필요로하지 않습니다 브라우저에서 보도록하겠습니다 새로 고침

그리고 이것은 우리의 형식입니다 그런 다음이 양식을 제출하고 해당 사용자를 가장하려고합니다 그래서 이것을위한 테스트를 만들어 봅시다 그래서, ImpersonateUserTestphp에서이 테스트와 마찬가지로, 우리는 그것을 원하지 않습니다

관리자가 아닌 사용자가 가장 (impersonate) 요청을 제출할 수 있습니다 따라서 비 관리자 사용자는 사용자를 가장 할 수 없습니다 우리의 테스트가 거의 동일하기 때문에 여기에서 복사 해 봅시다 여기에 게시물 요청을 제출합니다 이것은 또한 게시물 요청입니다

이제 phpunit을 실행하면 405 오류가 발생합니다 우리가 아직 게시 경로를 만들지 않았기 때문입니다 자,이 게시물 경로를 만들어 보겠습니다 webphp에서 이것을 복제하십시오

이것은 게시 경로이며 행동은 가장입니다 이제 PHPUnit을 실행 해 봅시다 그리고 우리는이 가장을 만들지 않았는데도 녹색을 얻습니다 방법 우리는 이미 여기에서 보호를 구현했기 때문입니다

위생 검열을 위해 이것을 설명합시다 우리는 PHPUnit을 사용하여이 특정 테스트를 실행할 수 있습니다 – 필터는 동등하고 테스트합니다 여기서 실패했습니다 이제 주석 처리를 제거하고 다시 실행하십시오 통과합니다

다음으로 관리자가 사용자를 가장 할 수 있는지 확인하기 위해 다른 테스트를 추가해 보겠습니다 여기에는 사용자가 있으며 관리자도 있습니다 사용자 우리는이 역할을 관리자와 동일하게합니다 그런 다음 관리자로 로그인하여 관리자로 로그인합니다

그런 다음이 엔드 포인트를 제출하고 원하는 사용자의 이메일을 전달합니다 의장 그리고 나서 마침내 우리의 주장은이 주장이 될 것입니다 auth id는 사용자와 같습니다 신분증

괜찮아 그래서 우리는 관리자로 로그인하는 것입니다 그런 다음이 엔드 포인트에 게시물 요청을 제출하여 해당 사용자를 가장합니다 그리고 우리가 모든 것을 올바르게했다면 현재 인증 된 사용자는 관리자가되면 이제는 가장하고있는 사용자가됩니다 계속 해보자

물론 그것은 실패합니다 여기서 우리는 오류를 가장하는 메소드가 존재하지 않습니다 자,이 방법을 만들어 보겠습니다 이 테스트를 다시 실행하십시오, 이번에는 오류가 발생합니다 진행합니다

이제 우리의 주장은 실패합니다 2 경기 예상 1 이제이 기능이 어떻게 작동하는지 살펴 보겠습니다 여기에 요청 객체를 가져 오자 자, 여기, 우리는 물론 이메일을 검증하기를 원합니다

전자 메일이 필요하며 전자 메일 주소인지 확인해야합니다 또한 사용자 테이블에 있는지 확인하고 싶습니다 다음으로이 이메일에 연결된 사용자를 찾아 봅시다 사용자는 이메일이 요청 이메일 인 첫 번째 사용자를 잡는 앱 사용자와 같습니다 자, 여기서 내가 할 일은 인증 ID를 세션에 넣을 것입니다

그래서 우리는 session helper를 세션 impersonate_by auth id에 넣을 것입니다 그런 다음 여기에 해당 사용자로 로그인합니다 그래서, 정식 로그인과 패스 사용자 다음으로 홈페이지로 리디렉션합니다 리디렉션 홈으로 돌아갑니다

시험을 치자 이번엔 초록색입니다 이제 브라우저에서 살펴 보겠습니다 브라우저에서이를 테스트하려면 가장 할 새 계정이 필요합니다 이제이 관리 사용자를 로그 아웃하고 새 계정을 등록 해 봅시다

John John@examplecom 암호 및 등록 이 사용자는 회원이며 가장 할 수있는 권한이 없습니다 따라서 로그 아웃하고 관리자로 로그인하십시오 그것은 harish@examplecom입니다

admin slash sperson으로 이동합니다 여기에 회원 사용자 john@examplecom의 전자 메일 주소를 입력합니다 가장을 클릭하십시오 이제 우리는 요한으로 가장하고 있으며 요한을 대신해서 무엇이든지 할 수 있습니다

유일한 문제는 지금 로그 아웃하지 않으면 빠져 나갈 실제 방법이 없다는 것입니다 이제는 버튼을 만들고, 그 버튼을 클릭하면 우리는 가장을 멈추고 관리자에게 다시 로그인하십시오 먼저 테스트를 작성하겠습니다 여기에서 관리자 사용자가 가장 (impersonating)을 중지 할 수 있다고 말합니다 여기에서 모두 복사하십시오

따라서 관리자로 로그인 한 다음이 끝점에 게시물 요청을 제출해야합니다 해당 사용자를 가장하기 위해 여기에 있습니다 그리고 나서 현재 인증 사용자는 관리자가 아니어야합니다 이제는 해당 사용자 여야합니다 이제 가장 (impersonating)을 중지하기 위해이 끝점에 삭제 요청을 보냅니다

다음은이 주장이 auth id가 admin id와 같음을 나타냅니다 이 테스트를 실행 해 보겠습니다 경로를 만들지 않았기 때문에 실패합니다 그래서, webphp에서

이것을 복제하십시오 이것은 삭제 경로입니다 그리고 그 행동은 멈춘다 이제이 테스트를 실행하면 무단으로 예외가 발생합니다 이는이 삭제 요청을 제출할 때이 사용자로 로그인했기 때문입니다

그 사용자는 회원 사용자입니다 가장 (Impersonate) 컨트롤러에서이 경로를 보호했으며 유일한 관리자 만 사용할 수 있습니다 사용자 그래서, 여기서 우리는 중지 방법을 제외한 모든 것을 보호 할 것이라고 말할 것입니다 그리고 여기에 사용자가 가장하는 것을 중지 할 수 있습니다

테스트를 실행하면 다시 실패합니다 중지 방법이 존재하지 않습니다 자,이 방법을 만들어 보겠습니다 테스트를 다시 실행하십시오 이번에는 우리의 주장이 실패합니다

그래서, 우리가 어떻게 통과 시킬지 여기에 우리는 세션에 관리자 아이디를 저장했습니다 그래서, 우리는 그 id를 잡고 그 admin 사용자로 로그인 할 것입니다 그래서 여기에 Auth loginUsingId와 impersonate_by를 가져옵니다 세션에서

이제 더 이상 세션에서 impersonate_by가 필요하지 않습니다 그래서 이것을 지우십시오 세션 impersonate_by을 잊어 버려 그런 다음 관리자 가장을 페이지로 리디렉션합니다 그게 전부예요

테스트를 해보 죠 그리고 이번에는 초록색입니다 이제 브라우저에서이를보고 싶습니다 먼저 가장하지 마세요 버튼을 추가하십시오 탐색 표시 줄에

이를 위해 appbladephp 레이아웃으로 이동해 보겠습니다 바로 여기에 버튼을 추가 할 것입니다 그래서 여기에 우리가 말하길, 세션이 다음으로 가장하여 추가하는 경우 li class nav-item form 메소드 게시 조치는 admin slash impersonate입니다

csrf 토큰 및 메소드 삭제 버튼 클래스 btn btn-link 그리고 여기서 우리는 도용을 중지한다고 말합니다 여기 모두 있습니다 브라우저로 이동합니다 새롭게 하다

여기서 우리는 "도용 중지"버튼을 가지고 있습니다 이것을 클릭하십시오 관리자 인 Harish에게 다시 회신합니다 한 번 더 보자 우리는 john@example

com hit impersonate로 가장 할 것입니다 이제 우리는 John으로 로그인하고 대신 John을 대신하여 조치를 취할 수 있습니다 명의 도용을 중지하면 관리 사용자 Harish에게 다시 전환됩니다 이것은이 비디오의 전부입니다 튜토리얼이 마음에 들면 좋아하는 버튼을 클릭하고이 비디오를 공유하고 구독하는 것을 잊지 마세요

우리 다음 곧 출시 될 비디오에서 곧 만나요

Laravel Package Development – e02 – Getting started with PHPUnit, Composer and PSR4 Autoloading

좋아, 시작하자 그래서 우리는 프로젝트 이름이 언론에 있음을 알고있다

그래서 디렉토리를 만들고 그것을 Press라는 이름으로 만들어 봅시다 그 디렉토리로 바꾸자 이제 'git init'명령에 익숙 할 수도 있지만 그 사실을 알지 못할 수도 있습니다 composer에는 init 명령이 있으며이 명령을 실행하면 실제로 아주 기본적인 composerjson 설정을 만드는 과정을 안내합니다

파일 자, 내 공급 업체가 vicgonvt이고 패키지 이름이 언론입니다 설명에서, 설명을 쓰자 완전한! 작성자가 정확하므로 입력 할 수 있습니다 최소 안정성, 그 비워 두자

패키지 유형에서이 항목을 비워 둡니다 에 대한 라이센스를 얻으려면 여기에 적절한 라이센스를 입력하십시오 제 경우에는 MIT를 입을 것입니다 'composer init'을 사용하면 대화 형으로 의존성을 요구할 수 있습니다 지금, 우리는 이런 식으로하지 않을 것이지만 당신은 할 수 있습니다

그래서 마침내 우리가 한 일을 미리보고 확인하기 위해 enter를 누르십시오 자, PHPStorm에서 이 composerjson 파일을 살펴보고 이름, 설명, 라이센스 및 저자가 있으며 현재로서는 필요한 패키지가 없습니다 그걸 시작합시다 터미널로 돌아가서 우리는 'composer require – -dev orchestra / testbench' 지금, 테스트 벤치 실제로 가져올 것입니다 Laravel 프로젝트에서 모두 익숙한 동일한 환경에서 그것은 우리가 당신과 같은 방식으로 패키지를 개발할 수있게 해줄 것입니다

일반 Laravel 응용 프로그램입니다 이제 여기로 돌아가고 싶습니다 그리고 저는 보여주고 싶습니다 당신에게 패키지의 일부를 가져옵니다 무엇보다도 Laravel 프레임 워크, 익숙한 다른 패키지는이 심포니 중 일부입니다 PHPUnit뿐 아니라 컴포넌트도 제공합니다

이제 설치가 완료되었습니다 앞서 git 저장소를 초기화하십시오 'git init'그리고 우리는 비어있다 저장소 '자식 상태'우리는 여기에 몇 가지 디렉토리가 있습니다 이제, 당신은 그렇지 않을 수도 있습니다

벤더 디렉토리와 'idea'디렉토리와 이것은 Laravel이 실제로 아주 좋은 'gitignore'와 함께 배송되기 때문입니다 지금, 'git ignore'파일은 실제로 git에게 특정 디렉토리 나 파일을 무시하도록 지시합니다 버전 제어가 필요하지 않기 때문에이 작업을 수행합니다 소지품 벤더 디렉토리와 마찬가지로, 작곡가와 '

idea'디렉토리, 필자의 경우 PHPStorm 파일이므로 필요하지 않습니다 소스 컨트롤 내부 Laravel GitHub 페이지를 방문하여 그 자식은 파일을 무시합니다 이제이 파일을 보면 'idea'와 ' 납품업자 및 다른 2 개의 전화 번호부 여기에서 그래서 나가 실제로하고 싶은 무엇을 이 전체 파일을 프로젝트에 가져 오십시오

나는 모든 것을 선택할거야 그것을 복사하여 PHPStorm로 다시 전환하고 새 파일을 만듭니다 새로운 파일 이 파일의 이름을 'gitignore'로 지정하면 붙여 넣기 만하면됩니다

저장, '자식 상태'그리고 거기에 우리가 갈 파일은 우리가 준비가 완료됩니다 먼저 'git add'를 커밋하십시오 'git commit -m 최초 커밋'완벽한 우리는 커다란 진전을 이루고 있습니다 디렉토리 구조 이것은 약간되는 주제 중 하나입니다 확실하지 않기 때문에 패키지 개발을 시작할 때 복잡해집니다

파일을 어디에 두어야 할 지 확신하지만, 여기에는 쉬운 접근법이 있습니다 우리가 취할 접근법은 정확히 똑같은 디렉토리를 사용하는 것입니다 우리 Laravel 패키지에 익숙한 구조 다시 가자 한 번 더 Laravel GitHub 페이지를 방문하여 디렉토리 구조를 살펴보십시오

그래서 우리는 app 디렉토리, 부트 스트랩, 설정, 라우트, 스토리지, 테스트 등을 가지고 있습니다 기타 등등 이 똑같은 디렉토리 구조를 예외가 아니라 앱 디렉토리 대신 실제로 'src'라고 부릅니다 근원을 나타냅니다 패키지 커뮤니티에서는 모든 사람들이 주 디렉토리는 'src'이어야하므로 우리는 그 대회에 참석할 것입니다

와 다시 말하면 우리 터미널로 돌아가서 디렉토리 'src'디렉토리를 만들고 두 개의 디렉토리를 만들자 우리의 테스트 테스트 파일로 시작하면 내부에서 테스트 기능 테스트와 단위 테스트가 있습니다 다시 PHPStorm에서 테스트 디렉토리와 소스를 살펴볼 수 있습니다

그것은이 시점에서 물론 비어 있습니다 자, 우리가 활용하지 못하는 한가지 방금 자동 로딩이되었으므로 작곡가 인 json 파일로 돌아가 봅시다 몇 가지 항목을 추가하십시오 첫 번째 것은 '자동로드'입니다 우리는 psr-4에서이 작업을 수행 할 것입니다

우리가 알아야 할 첫 번째 것은 우리 네임 스페이스가 될 것입니다 내 사건 'vicgonvt \ press \'그리고 우리는 또한 그것을 말해야 만합니다 메인 항목 point는 우리의 경우에 'src'디렉토리 인 네임 스페이스를위한 것입니다 우리의 테스트를 자동로드하므로, 우리는 또 다른 항목 'autoload-dev'를 추가 할 것입니다 또한 psr-4와 약간 다른 네임 스페이스 'vicgonvt \ press \ tests \'그래서, 그 진입 점은 어디입니까? 글쎄, 그거야

우리의 테스트 디렉토리에 있어야하고 그게 다야! 이 시점에서 우리는 자동 로딩을하고 있습니다 PHPUnit을 실행할 준비가되었습니다 테스트 해 봅시다 'phpunit'과 오우 소년! 그것은 계획대로 가지 않았습니다! 권리? 우리는 'phpunit'과 모든 일을하는 데 익숙하지만 PHPUnit 만 사용합니다 실제로 많은 옵션이 있습니다

이제는 이러한 옵션을 볼 수없는 이유가 왜냐하면 Laravel은 실제로 PHPUnit에게 무엇을 지시하는 작은 파일을 가지고 있기 때문입니다 해야 할 것 이 파일을 살펴 보겠습니다 GitHub 저장소로 돌아 가면 다음 위치에 파일이 있습니다 여기에 'phpunitxml'이 있는데, 우리가 열면 실제로 모든 옵션이 보입니다

여기에는 유닛 테스트 스위트와 기능 테스트 스위트가 포함되어 있습니다 'gitignore'와 동일합니다 실제로이 전체 파일을 프로젝트에 가져와 봅시다 나는 갈거야

새 파일을 만들고 난 그것을 'phpunitxml'이라고 부를거야 PHPUnit은 실제로 이 파일을 찾을거야, 'phpunit'을 실행할 때, 그렇게 해보자 이 파일을 살펴볼 수는 있지만 기본적으로이 파일은 모두 옵션을 선택하면 테스트 스위트 섹션이 생성 된 다음 어떤 파일이 실제로 테스트 될지 그리고 마지막으로 우리는 환경 파일 우리는 지금 이것을 필요로하지 않기 때문에 실제로 지울 것입니다

그들과 당신이 변경해야 할 유일한 다른 것은 app 디렉토리 대신에있다 그것은 우리의 'src'디렉토리가 될 것입니다 저장을 클릭하고 iTerm으로 다시 전환하고 한 번 더 'phpunit'을 실행하면 테스트가 실행됩니다 마지막 하나 내가하고 싶은 일은, 우리가 할 수있는 아주 간단한 테스트를 작성하는 것입니다 정말로 뭔가 테스트

그래서 저는 새로운 PHP 클래스를 만들겠습니다 우리는 그것을 호출 할 것입니다 초기 테스트, 내 네임 스페이스 'vicgonvt Press Tests' 당신은 단순히 'php artisan make : tests'를 실행하는 데 익숙 할 수 있습니다 처음부터 테스트를 설정하는 데 익숙하지만 한 가지 알고있는 것은 모든 테스트가 테스트 케이스를 확장한다는 것이 Laravel의 경우에 있습니다 일반적으로 Laravel 프레임 워크의 테스트 케이스를 확장하지만 패키지를 개발할 때 우리는 실제로 테스트 케이스를 확장해야합니다

오케스트라 테스트 벤치에서 그리고 여기 있습니다, 전체 네임 스페이스는 'orchestra testbench testcase'입니다 여기까지 가져 왔고 우리의 첫 번째 간단한 테스트를 작성해 보겠습니다 자, 하나 내가 여기서주의하기를 바라는 것은 우리가 당신이 사용하는 모든 주장을하는 방법입니다 이미보고 있기 때문에, 우리는 진실을 주장하고 진실을 말하고 물론, 그렇게 될 것입니다 iTerm으로 돌아가서 'phpunit'을 한 번 더 실행 해 보겠습니다

시간이 지나면 우리는 녹색 테스트를 받게됩니다

Vim Tricks, UX Design, VueJS, PHPUnit und Regex – PHP Training

그것은 당신을 아주 다르게 가르치고 또한 당신은 더 잘 볼 수 있습니다 너라면 손에 든 키보드를 잡으면 그 상태를 유지할 수 있습니다

너 자신에게 무언가를 쓴다 그렇게 생각하십시오 때로는 적극적으로 참여 언제나처럼 수동적으로 샤워해야합니다 그래서 나는 그것을 추천 할 것이다 나는 큰 그림, 모든 것이 어떻게 구성되어 있는지에 대해 기뻐합니다

나는 다른 사람들과 이야기하는 것을 좋아한다 그 이유가 여기에있다 나는 모든 사람들에게 조언하고 싶었다 단지이 재미를 엄청나게 만듭니다 노출을 얻기 위해서

나는 Never Code Oneone 이벤트에 참석해 왔으며 항상 관심이 있습니다 이 테스트 주제는 당신의 일상 생활을 더 좋게 만들고 최적화 할 수 있습니다 이것이 GitLab 파이프 라인인지 여부 또는 우리가 현재 가지고있는 것은 PHPUnit과 Test Driven Development입니다 이러한 나는 매우 흥미로운 주제를 찾는다 나는 모두가 뭔가를 가질 수 있다고 생각한다

나는 PHP 부분에 가입했다 각 주제에 대해 10 가지 솔루션과 10 가지 프로그래밍 옵션이 있습니다 당신은 모든 사람의 말을 듣고 그 말을 듣게됩니다 어쨌든 당신이 주제에서 오지 않는다고하더라도 당신은 배웁니다 그리고 나

나는 최근에 누군가가 이벤트에 왔을 때 멋진 것을 발견했다 독일어도 전혀 말하지 않았으며 영어도 마찬가지입니다 그는 문제가 있었지만 그럼에도 불구하고 그는 그걸 가지고 일하려고 애를 썼고 멈췄다 또한 기록됩니다 그래서이 가족 환경

매우 친절한 모든 것 그래서 저는이 행사가 매우 훌륭하다고 생각합니다 장벽이 낮다 그리고 모두가 참여할 수 있습니다 모두 10 유로를 쓸 수 있습니다

기부 목적은 아주 좋은 것입니다 4 명의 연사, 4 명의 후원자는 우리를 정말로 화나게합니다 참가자의 레코드 번호 이번 세션의 네 편의 동영상은 모두 YouTube에 게시됩니다 했다

비디오 설명에서 찾을 수 있습니다 채널을 따라 가서 체재하십시오 녹색

Vim Tricks, UX Design, VueJS, PHPUnit und Regex – PHP Training

그것은 당신을 아주 다르게 가르치고 또한 당신은 더 잘 보게됩니다 너라면 손에 든 키보드를 잡으면 그 상태를 유지할 수 있습니다

너 자신에게 무언가를 쓴다 그렇게 생각하십시오 때로는 적극적으로 참여 언제나처럼 수동적으로 샤워해야합니다 그래서 나는 그것을 추천 할 것이다 나는 큰 그림, 모든 것이 어떻게 구성되어 있는지에 대해 기뻐합니다

나는 다른 사람들과 이야기하는 것을 좋아한다 그 이유가 여기에있다 나는 모든 사람들에게 조언하고 싶었다 단지이 재미를 엄청나게 만듭니다 노출을 얻기 위해서

나는 Never Code Oneone 이벤트에 참석해 왔으며 항상 관심이 있습니다 이 테스트 주제는 당신의 일상 생활을 더 좋게 만들고 최적화 할 수 있습니다 이것이 GitLab 파이프 라인인지 여부 또는 우리가 현재 가지고있는 것은 PHPUnit과 Test Driven Development입니다 이러한 나는 매우 흥미로운 주제를 찾는다 나는 모두가 뭔가를 가질 수 있다고 생각한다

나는 PHP 부분에 가입했다 각 주제에 대해 10 가지 솔루션과 10 가지 프로그래밍 옵션이 있습니다 당신은 모든 사람의 말을 듣고 그 말을 듣게됩니다 어쨌든 당신이 주제에서 오지 않는다고하더라도 당신은 배웁니다 그리고 나

나는 최근에 누군가가 이벤트에 왔을 때 멋진 것을 발견했다 독일어도 전혀 말하지 않았으며 영어도 마찬가지입니다 그는 문제가 있었지만 그럼에도 불구하고 그는 그걸 가지고 일하려고 애를 썼고 멈췄다 또한 기록됩니다 그래서이 가족 환경

매우 친절한 모든 것 그래서 저는이 행사가 매우 훌륭하다고 생각합니다 장벽이 낮다 그리고 모두가 참여할 수 있습니다 모두 10 유로를 쓸 수 있습니다

기부 목적은 아주 좋은 것입니다 4 명의 연사, 4 명의 후원자, 정말 화가났습니다 참가자의 레코드 번호 이번 세션의 네 편의 동영상은 모두 YouTube에 게시됩니다 했다

비디오 설명에서 찾을 수 있습니다 채널을 따라 가서 체재하십시오 녹색

VIM, UX Design, VueJS, PHPUnit und RegEx Workshop Training – HOF #NCAEvent

소프트웨어 엔터테인먼트의 안녕 친구, 1711에

Kempen의 Never Code Honone of Hall 이벤트입니다 나는 너에게 보여 줄게 이 비디오에서 우리를 기다리고있는 세션이 있습니다 일반적으로 관객을 자신의 세션으로 끌어들이는 데 가장 잘 관여 한 연사 통합 할 수 있습니다 즉, 무선 키보드를 사용합니다

Daniel Spiepmann은 Vim Advanced Tricks를 먼저 보여줍니다 그는 우리를 설명합니다 Vim의 원리, 우리가 가장 잘 사용하는 플러그인과 Vim으로 효과적으로 작업 할 수 있습니다 Vim은 위대한 편집자입니다 일상적으로 사용할 때 많은 재미를 볼 수 있습니다

어쩌면 원격 서버가 필요하고 때로는 구성이 필요합니다 경로를 조정하거나 조정하십시오 이것은 중요한 지식이며 우리는 이것을 깊게하고 무선 키보드 자체에 편리하게 들어가십시오 그 후에 Kerstin과 Christian은 좋은 UX 디자인을 만드는 방법을 보여 주었고 VueJS 애플리케이션에서 구현된다 VueJS의 실용적인 부분에서 우리는 무선 키보드로도 함께 알게됩니다

그것을 이해하고 실제로 적용하십시오 Rafal은 PHPUnit 프레임 워크로 테스트 주도 개발을 보여줍니다 Symfony 응용 프로그램 그는 전자 상거래를위한 가격 수입자가됩니다 우리와 함께 애플리케이션을 작성하고이 가져 오기 기능을 검토하십시오

이전에지도 테스트 그렇게하면 빠르고 안전하고 효과적 일 수 있습니다 무엇보다도, 우리는 하나의 시험도 어렵지 않다는 것을 알 수 있습니다 수입업자를 설정하고, 유익하고 유익한 시험이 있다면 로 마지막으로 토마스는 RegEx 세션을 다시했습니다

그게 아마도 지금까지 모든 사건에서 우리가 가진 최고의 세션 그는 두 번째 것을 가지고있다 비머가 가져온 RegEx 패턴은 다음과 같습니다 함께 특정 문제와 도전 있습니다 그것은 정말로 정말로 재미 있었다

html을 슬래시로 대체하십시오 슬래시가 경로 끝에 있는지 확인하십시오 양식 및 여러 항목 확인 유효성을 검사하고, 무엇보다도 문자열을 조작하십시오 이들은 매일 응용 프로그램에서 항상 사용하는 사례 (특히 URL의 경우) 예를 들어갑니다 루프와 if 문을 사용하는 길은 길다

여기서 몇 가지 일을 할 수 있습니다 물론 RegEx는 훨씬 더 효과적이며 무엇보다 빠른 것입니다 늘 그렇듯이, 우리는 사회 목적에 10 유로 100 %를 기부합니다 이번에는 장애인에 관한 구호 단체에 왔습니다 Viersen은 정상적인 일상 생활을 다시 돌보고 통합합니다

지원 우리는 또한 마차 차와 함께 마틴 앞에서 돌아올 것입니다 개인적으로 저녁에 맥주를 몇 개 더 주면 우리는 또한 좋은 결말이 있습니다 그래서 우리는 잘 돌봐야합니다 캐터링 아침과 점심과 함께 작은 음료가 당신 것입니다 또한 완전히 제공됩니다

이 이벤트가 가능하도록 지금까지 우리는 PageGroup, thiswork 및 Nexus의 세 스폰서를 보유하고 있습니다 다음 주에있을거야 아직 4 번째 스폰서가 있습니다 트위터 나 페이스 북과 당신은 또한 나에게 큰 것을 줄 것이다

소셜 미디어에서이 이벤트를 다시 공유하면이 작업을 즐기십시오 이미 그 일을 했더라도 모든 클릭 수가 계산됩니다 이 행사는 Kempen은 회의 다락방에서 열렸습니다 캄퍼 너에서 도보로 5 분 미만입니다

역 멀리 여기 아주 쉽다 뒤셀도르프에서 30 분 이내에 또한 자동차로 도착하는 사람들을위한 충분한 주차 공간이 있습니다 합니다 다시 한번 감사드립니다

관심 모든 링크는 아래 동영상에서 확인할 수 있습니다 설명 최신 채널을 통해이 채널을 팔로우하여 녹색으로 유지됩니다

Will PHP Become Obsolete?

PHP가 쓸모 없게됩니까? 장기적으로는 아마도 파이썬은 심각한 라이벌이며, 새로운 프로그래머는 구문과 어휘가 더 간단하기 때문에 말하십시오

파이썬은 의도적으로 모든 기능을 갖춘 언어로 설계 되었기 때문입니다 짧은 명령 행 PHP는 유기적으로 성장했습니다 암처럼 아니, 버섯 같아

나는 버섯이 싫어 파이썬과 같은 PHP에 대한 대안이 있지만, 그것이 채택 될 것이라는 것을 의미하지는 않습니다 도매 대체품 결국, PHP는 모든 것을 할 수있는 많은 온라인 코드 모듈을 가지고 있습니다 다른 일을 할 수있는 유연성과 유연성이 필요합니다

PHP는 자유형 일 수 있지만, 다른 사람들이 유지 보수하는 데 어려움을 겪습니다 원래 제작자가 아닌 PHP에는 프레임 워크가 있습니다 PHP에는 몇 가지 경쟁 프레임 워크가 있습니다 프로그래머가 동일한 프레임 워크를 사용하지 마십시오 Ruby on Rails를 생각해보십시오

많은 경우에 JSP로 대체되었습니다 내가 의미했던 것은 Ruby가 Rails 프레임 워크를 사용하도록 설계 되었기 때문에 결과는 컴팩트 한 언어와 효율적인 프레임 워크를 제공하여 신속하게 앱을 함께 활용할 수있게 해줍니다 오히려 베어 본 경우 Ruby on Rails는 새로운 버전의 언어는 오래된 것들을 깰 수 있습니다 파이썬은 사용자 후 언어의 릴리스를 조직했다

입력 PHP는 어떻습니까? Haphazard, mish-mash, 함께 던져지며, 자유 형식이며 예술적 유형에는 인기가 있지만 그렇지 않습니다 심각한 물건에 적합합니다 그게 다예요 당신이 그것에 대해 어떻게 느끼는지 말해주세요

PHP의 또 다른 약점은 기본 기능을 처리하기 위해 PHP 스택에 추가해야한다는 것입니다 웹 서버에 Apache HTTPD 서버가 필요한 반면 종속성 관리에는 작성자를 추가하십시오 나는 아파치를 사용하는 것에 관계없이 거의 모든 서버를 생각한다 유닛 테스트를 위해서는 PHP가 있어야하며 PHP 유닛을 추가해야하지만 버전 관리 요구 사항 Subversion 또는 Git 여기서 나가

내 서버에 대한 버전 제어가 필요하지 않습니다 파일 및 소프트웨어 버전의 구성을 추적하고 파일 버전을 알았습니까? 작동하지 않을 때 다시 롤백하는 데 중요한 역할을합니다 실제로 사용하는 PHP 모듈을 알려주십시오 서버에 PHP가 있어도 MySQL 또는 NoSQL과 같은 데이터베이스 저장소가 필요합니다 서버에서 PHP를 사용하는 경우에도 클라이언트에서 jQuery와 JavaScript를 사용하는 것이 일상적입니다

측면 이는 시스템 관리자가 배우고 이해하는 데 많은 도움이됩니다 클라이언트 측 응용 프로그램 용 Java, Java Server Pages를 사용하여 모든 것을 단순화 할 수 있습니다 서버의 경우 다른 모든 기능을위한 Java 및 Scala 모듈 등이 있습니다 사람들이 ASP를 사용할 수 있다고 하던데

ASP는 마이크로 소프트라는 점을 제외하고는 PHP만큼 좋을지도 모릅니다 Microsoft를 사용하지 않는 것이 좋습니다 PHP는 클라우드 컴퓨팅의 핵심 요소 인 동시 적 도구가 부족합니다 많은 불일치 마이크로 소프트처럼

아니요, Microsoft보다 나빠요 최소한 Microsoft는 관리자 도구를 만들 수있는 많은 도구 모음을 가지고 있습니다 삶이 더 쉽다 마이크로 소프트가 당신보다 낫다면 당신은 쓸모가 없습니다

Start Laravel Testing | Feature Test | Code Testing #5

레벨 애플리케이션 테스트와 Laravel 앱이 필요한 것부터 시작하겠습니다 테스트 레벨을 간단하게 말하면 새로운 앱과 새로운 앱을 만들 것입니다

앱이 성공적으로 다운로드되었으므로 코드를 열어 보겠습니다 laravel 응용 프로그램에서 테스트를 시작하고 그 호스트 Sarthak 및 bitfilms라는이 채널에 오신 것을 환영합니다 구독하지 않은 경우 Laravel 및 웹 개발 관련 일에이 채널을 구독하고 종소리 아이콘을 치는 것을 잊어서 알림을 받도록하십시오 레벨 테스트와 관련하여이 레벨 어플리케이션에서 우리가 얻고있는 것들 너무 똑똑해서 PHP 단위를 테스트 도구로 제공 할 것입니다 그것을 위해 당신은 작곡가 점 JSON 파일에 갈 수 있고 여기에 당신은 dev를 볼 수 있습니다 의존성은 우리가 이미 알고 싶어하는 PHP 유닛을 가지고 있습니다

우리가 레벨을 사용하고 있기 때문에 우리가 그것을 따로 설치할 필요는 없습니다 당신이 가진 PHP 단위로 시작하는 이전 에피소드를 지켜 봤습니다 아마 우리는이 PHP 단위 도트 XML을 만들었습니다 우리가 모든 것을 넣을 테스트 폴더가 필요하다 우리의 테스트와 레벨에서 주어진 똑같은 일을하지만 두 개의 폴더가 있습니다

다른 하나는 유닛이고 다른 두 개는 파일이므로 우리의 기능에 대해 이야기하겠습니다 우리는 단위 테스트에 대해 이미 이야기했기 때문에 기능은 무엇이며 왜 그것은 별도의 폴더를 가지고 있으므로 기능 테스트와 유닛의 차이점 시험은 당신이 그것을 진실이라고 말하는 것을 볼 수 있습니다 즉, 기본 URL을 의미하고 상태 200을 어설 션합니다 여기에 차이가있어서, 만약 당신이 그걸 못 느끼면 우리가 알 수있는대로 말해 줄께 단위 테스트는 코드의 가장 작은 기능을 테스트하기위한 것이지만 기능 테스트는 사용자 관점에서 모든 것을 제공합니다

즉, 이 기능 테스트에서 응용 프로그램의 흐름을 테스트하여 잉크가됩니다 사용자가 기본 URL로 이동할 때마다 상태 코드 200을 가져야합니다 기본 URL로 이동할 때마다 응용 프로그램의 흐름을 정확히 파악할 수 있습니다 페이지를 가져 오면 200 응답을 얻는다는 뜻입니다 이 테스트를 실행하면 더 나은 확장 프로그램이 설치되었음을 알 수 있습니다

PHP는 여기에 있기 때문에 테스트를 실행할 수 있지만 R 명령을 누르면 Mac에서 명령 R 또는 Windows에서 Ctrl R로 표시됩니다 그 테스트를 실행하면 테스트 이름이 기능과 예제라는 것을 알 수 있습니다 테스트 도트 PHP와이 테스트는 성공적이지만, 내가 말하면 무엇을 말할 것인가? 이 파일을 저장하면이 테스트를 실행합니다 테스트하고있는 테스트는 200이지만 4 0 4를 받았다고합니다 테스트가 실패했습니다

그래서이 테스트를 통과합시다 이것이 실패하는 이유는 무엇입니까? 4 0 4가 있습니다 즉, 경로를 만들지 않으면 호출 할 경로가 없습니다 경로 그래서 PHP를 웹 도트로 이동하고 다시 당신이 명령 P를 눌러야 할 코드 대요 모든 파일을 검색하면 마우스를 사용하지 마십시오 PHP는 웹에 도트를 붙였습니다

여기에 간단한 경로는 about과 having을 갖는 요청을 얻는 것입니다 가장 가까운 머리카락과 가까운 머리카락 좋은 찾고 흠에 대한 단어 그래서 만약 내가 실행하면 꽤이 테스트가 통과 확신 해요 이게 정확히이 기능 테스트 야 그래서 내가 이렇게하면 어떻게 될까? 우리는 이것이이 반환 부분을 가지고 있는지 여부를 알고 싶습니다 왜냐하면 내가 이것을 주석 처리하고 이전 테스트를 실행하면 여전히 통과하지만 우리는 확인하고 싶으면 무엇이든 돌려주지 않습니다 그래서 다른 것을 만들자

그것 때문에 라우트 리턴에 대한 대중적인 기능을 시험해 보라 우리가 만들려고하는 테스트와 만약 당신이 최고 박스를주는 것을 잊지 않았다면 테스트 접두사를 여기에 제공하지 않습니다 좋아요 이제이 말은 이제 할 수 있습니다 단순히이 모든 것들을 붙여 넣기하고 이것과 같은 것을 좋아한다고 말하면됩니다

이제 우리는 응답에 무언가가 존재하는지 말하기를 원합니다 만약 내가 죽고 대답하면이 시험을 치르 자 이 특정 테스트를 실행하기 위해이 테스트를 클릭하고 컨트롤러를 클릭하면 여기를 누르십시오이 테스트가 실행되지 않습니다 그래서 여기를 클릭하십시오 단계를 실행하고 우리가 덤프를 죽은 지금하고 보자

우리가 할 수있는 일에 대해 뭔가를 얻고 있기 때문에 한 가지 더 의견을 말하면 이제 묶여 있는지 여부를 점검 할 것입니다 그래서이 테스트를 실행하고 네가 통과 한 것을 볼 수 있고, 페이지에 대해 뭔가를 바꾸고이 테스트를 실행하십시오 이것에 대한 내용이 포함되어 있기 때문에 패스하지만 내가 이것을 제거하고 테스트가 실패합니다 성공하지 못했다는 것을 알고 있습니다 그래서 이것은 좋지만 어쨌든 나는 폭행이 있다는 것을 압니다

레벨에 시스템 주장하기를 참조하십시오 문서 및 여기에이 테스트를 찾을 수있는 문서가 있습니다 부품 및 HTTP 테스트는 사용 가능한 단정에 가면 많은 정보가 표시됩니다 주장이 많이 있기 때문에 이것은 우리가 창조 한 것에 대한 것이지만 하나 더 알고 있습니다 우리가베이스 URL에 갈 수있는 건 네가 이걸 알기 때문이다

200으로 응답하지만 우리는 단순히 C와 레벨을 주장 할 수 있습니다 이것은 C를 주장하고 우리는이 특정한 것들이 내가 서버를 열고 여기서 열어 보겠습니다 기본 페이지에서 레벨을 확인할 수 있습니다 또는 조각 URL 및 그렇습니다 우리는 괜찮아지고있다 기본 URL에 가고 상표를보십시오 if 내가 사크가하는 말이라면이 시험 통과 통과 슈퍼 쿨을 통과하는 레벨이있다 거기에 괜찮아 산타가 존재하지 않는다고 말하지 않는다

당신은 우리가 수준을 가지고 있다는 것을 알 수 있습니다 그래서 더 멋진 문서가 있습니다 물건이 순서대로 보입니다 그래서 C를 순서대로 사용하고 우리가 먼저 필요한 순서를 사용하십시오 먼저 우리는 레벨이 필요하고 분명히 여기 안에 있어야합니다

배열 그리고 당신이 남자 역 괜찮아 의사처럼 그래서이 테스트를 실행하고 예를 변경하면이 테스트는 통과합니다 그래서 이것이 여기에 있습니다 그리고 이것이 테스트를 실행한다면 말합니다 붐이 실패하고 이것은 우리 시험이 통과하고 있음을 의미하므로이 문제에 갈 수 있습니다 문서에는 이러한 모든 주장을 체크 아웃 할 수 있습니다

주장을하고이 모든 것들을 실험 해보고 이것이 가능할 것입니다 테스트 지식을 향상 시키십시오 다음 에피소드가 있지만 그 전에는이 채널을 구독하지 않은 경우 이동하십시오 이 채널을 구독하고 내가 얻을 수있는 벨을 치면 즉석을 얻을 수 있습니다 알림은 Facebook Twitter 및 LinkedIn의 비트 필름을 따르며 개발자 친구와이 동영상을 공유하는 것을 잊지 마세요

다음 에피소드 그때까지 안녕

PHP Seminar Berlin

저는 프로그래머입니다 – 오늘 자원 부족 여름 파티에서 베를린 출신 오늘 모든 장소에서 2 시간에 3 시간의 워크샵이있었습니다 TYPO3에 중점을 둔 여러 팀

개념 수락 테스트, 기능 테스트 및 단위 테스트 그 일은 정말 잘되고 재미있었습니다 우리는 무선 키보드와 잘 어울리 며 여기에 몇 가지 진술이 있습니다 네가 좋아하면 나 한테주고 채널을 따라 간다 예 안녕하세요 저는 Harald입니다

저는 리소스 부족에있어 시스템 관리자입니다 그리고 우리는 자원 부족으로 내부 직원들에게 큰 중요성을 부여합니다 더 교육 받아야한다 여기서 우리는 훈련, 워크샵 등을 조직합니다 우리는 외부 객원 강사를 초청합니다

우리는 그것을 매우 중요하게 생각합니다 사내에서 일어난다 직원들이 더 나은 동기를 갖기 때문이다 오히려 일하게 될 것입니다 일하는 것이 더 재미 있습니다

서로 볼 수 있습니다 교류가 잘되고 외부 강사의 도움이 매우 중요합니다 그것이 우리가 그 위에 구축 한 이유입니다 Roland의 교육 과정은 매우 쉽고 재미 있습니다 특히 우리가 배운 테스트의 글은 정말 멋지다

사실, 아주 간단합니다 확실히 확실히 더 자주 나는 단지 추천 할 수있다 우리는 잘 훈련 된 직원 여러 가지 이유로 회사에 도움이됩니다 실제로 고객 및 만족 한 고객에게 좋은, 행복한 고객은 더 나은 품질을 얻기 때문에 더 많은 서비스를 예약합니다 그들이 무엇에 개입 할 수 있는지 알아라

당신은 그 품질을 알지 못합니다 표면적으로 나타나지만 실제로는 테프와 이것이 우리가 개발자의 실적에 투자하는 이유입니다 그들이 초기 구현의 최신 기술을 사용할뿐만 아니라 품질 유지 방법 증가시키고 확보하십시오

What is Unit Testing | Code Testing #2

네, 테스트가 뭔지는 알지만 정확한 테스트는 무엇입니까? 이 에피소드에서 대답을 시작하겠습니다 나는 당신의 호스트 Sarthak입니다

이것은 웹 개발 관련 것들을위한 채널이며 잊지 마세요 구독하고 싶다면 벨 아이콘을 눌러 알림을 받으십시오 레벨 Vuejs와 관련된 멋진 동영상과 더 많은 것들이 반응합니다 우리가 여기서 배우려는 것을 보자 그래서 단위 테스트 무엇 단위 테스트하지만 그 전에 우리가 단위가 아닌지 보자 테스트는 단위 테스트가 소프트웨어 흐름이 무엇인지 알지 못합니다

사용자가 프로젝트를 어떻게 사용할 것인지 테스트하지 않는다는 것을 의미합니다 앱이나 사용자와는 다른 소프트웨어를 먼저 설치 한 다음 그는 두 번째 페이지로 이동하고 사용자가이 방법으로 갈 수 있는지 테스트해야합니다 단 한 건도 알지도 못했지만이 테스트는 단위 테스트가 아닙니다 컨트롤러를 테스트하는 것은 컨트롤러가 할 수 있기 때문에 단지 컨트롤을 사용하는 것이 아닙니다 컨트롤러가 가질 수있는 많은 기능 기능 및 유닛 테스트는 컨트롤러 전체를 테스트하는 것이 아닙니다

단위 테스트는 간단한 모듈을위한 것이 아닙니다 모듈이 있다고 가정하십시오 이미지를 최적화 한 다음 데이터베이스에 저장하고이 모든 것을 저장합니다 단위 테스트는 모듈을위한 것이 아니므로 많은 단계가있는 것 같습니다 테스트는 당신이 단위를 알았다는 것을 당신은 본 적이 있습니다

무언가는 단위가 하나라는 것을 의미하므로 하나의 함수에 대한 하나의 테스트 각각 간단한 것 테스트를위한 메소드는 각각의 메소드로 테스트를 작성합니다 메소드 테스트 한 가지만 당신이 오직 한 가지만 알기 때문에 그렇게 말했죠 컨트롤러는 많은 기능을 가질 수 있으므로 하나의 기능을 테스트 할 수 있습니다 기능은 한 가지만 할 수 있으므로 중요한 부분입니다 그리고 모든 유닛 테스트에서 아마도 하나의 주장이있을 것입니다

하나는 당신이 주장하는 주장 또는 일부에 대한 2 개 또는 3 개의 출력을 기대하고 있습니다 당신이 한 두 가지 또는 세 가지를 가지고 있음을 의미하는 기능 테스트 및 단위 테스트 단위 테스트가 하나만 체크 단위를 의미합니다 한 번에 기능 또는 하나의 기능에 대한 하나의 테스트를 수행 한 다음 단위 테스트를 수행해야합니다 그게 무슨 뜻인지 감추지 말라 나는 단지 한 가지 시험을 썼다는 것을 안다 데이터베이스에 사용자가 있는지 여부를 확인하려고 할 때 1 명의 사용자를 얻는 다른 시험 그러나이 2 개의 것은 이렇게 분리되어야한다 당신이 아니라면 첫 번째 테스트 두 번째 휴식을 실행하지 않는 것과 같지 않습니다 두 번째 테스트는 첫 번째 테스트를 완료 할 때마다 수행해야합니다

개별적으로 테스트하고 분명히 흐름에 따라서도 테스트가 방해하지 않습니다 내가 서로 말했듯이, 당신이 하나에 대한 사용자 정보를 얻는다면 함수 하나를 테스트 한 다음 기능을 전달할 필요가 없습니다 다른 테스트는 각 테스트가 자신의 정체성을 가지고 자신의 데이터를 자신의 구조 아무것도 그렇지 않으면 각 단위 테스트가 다른 테스트와 데이터를 공유하지 않는다는 것을 의미합니다 이것은 단위 테스트를 할 때주의해야 할 가장 중요한 것입니다 단위 테스트의 목표는 무엇입니까? 단위 테스트의 목표는 간단합니다

프로그램의 각 부분이 이 시점에서 가장 중요한 부분을 차지하는 고립 된 시스템은 고립 된 시스템이므로 단위 테스트는 각각에 대한 것입니다 각 시스템의 기능성과 테스트를 작성하여 단위에 관한 것입니다 테스트와 나는 당신이 이것을 좋아하지 않는다면 당신이이 에피소드를 좋아할 것이라고 확신합니다 에피소드는이 채널을 구독하고 내가 할 수있는 벨을 치면됩니다 웹과 관련된 다른 동영상을 업로드 할 때마다 알림을받습니다

개발 일들 그리고 그들은 페이스 북에서 연기로 따라 간다 Twitter Instagram 이 동영상을 개발자 친구와 공유하여 모든 사람이 무엇인지 알게하십시오 유닛 테스팅과 함께 다음 에피소드에서 우리는 우리가 처음부터 PHP 단위로 간단한 것을 테스트 할 수있는 방법을 배우는 PHP 단위 우리의 PHP 세계에있는 것, 그래서 우리는 다음 에피소드에서 그 때까지 잘 만날 것입니다

Getting Started with PHPUnit | Code Testing #3

phpunit은 PHP 코드를 테스트하는 간단한 도구이지만 어떻게 시작할 수 있습니까? PHP 유닛으로 스크래치하기 때문에 브라우저에서 PHP 유닛 검색을 입력하자 Google과 당신은 위대한 PHP 단위를위한 웹 사이트를 얻을 것이다

그러나 우리는 Sebastian Bergman의이 github 저장소에 관심이 있습니다 이제 열어 보겠습니다 이 github 저장소 및 당신은 매우이 웹 사이트에 좀 걸릴 수 있습니다 잘 설명 할 수는 없지만 시작하는 것이 좋다 어떻게 할 수 있는지 보여 주겠다 실제로 여기에서 시작하십시오

PHP 유닛 github 저장소가 있습니다 W 게이트 또는 PHP로 설치할 수있는 설치 부분이 있음을 알 수 있습니다 이런 종류의 물건을 좋아하지만 당신은 작곡가를 사용하여 다운로드하고 우리가 여기에 다운로드를 시작하기 위해 여기에 갈 필요가있다 작곡가를 통해 시작할 때 쉽고 그렇지 않은 경우 작곡가를 통해 작곡가에 대해 알기 만하면 패키지 도구 또는 종속성 관리자 일뿐입니다 PHP 관련 일을위한 패키지를 다운로드 할 수있게합니다

이것을 복사 할 필요가 없습니다 우리는 그것을 쓸 수 있지만 그 전에 우리가 할 수있는 것은 폴더를 생성 할 것입니다 그래서 mkdir과 ​​나는 이것을 PHP 단위 테스트라고 부를 것이므로 괜찮습니다 그리고 가자 PHP 단위 테스트 및 여기에 우리가 말할 것이다 작곡가 다음 PHP 단위 슬래시 PHP가 필요합니다 유닛과 예 (def dependency)가되어야합니다

localhost에있을 때 개발하면 테스트 만하면된다 enter 키를 누른다 무엇을 할 것인가 그것은 새로운 폴더에 PHP 단위 패키지를 다운로드합니다 vendor 폴더라는이 명령으로 만들어 지므로이 명령을 기다리 자 이제 HP 장치가 설치되어 있으므로이 PHP 단위로가 보겠습니다

우리가 만든 test 폴더와 예 우리는 세 개의 파일을 가지고 있습니다 그래서 이것을 열지 마십시오 VX 코드로 이제 3 개의 파일이 있다면이 복합체를 살펴 보겠습니다 JSON 파일은 간단합니다

단지 컴파일러가 의존하는 dev 종속성이 필요합니다 PHP 단위 71이며이 벤더 폴더에서는 예를 들어 많은 것들이 있지만 관심있는 폴더는 bin 폴더이고 여기에 실행 가능한 PHP 단위 그래서 우리가 이것을 실행하는 방법을 통합 터미널을 열어 보겠습니다 코드 대 여기 내가 입력 할 것입니다 입력하십시오 PHP 단위 그것은 특별한 단위입니다 PHP 유닛을 직접 실행하고 싶다면 설치가 필요합니다 PHP 단위는 전 세계적으로 사용되지만 레벨을 사용할 경우 필요하지 않습니다

수준은 이미 PHP 단위를 제공하므로 PHP 단위를 사용하는 것은 좋지 않습니다 전 세계적으로 PHP 유닛을 어떻게 운영 할 수 있습니까? 그래서 실제로 벤더 슬래시로 가야합니다 빈 슬래시 PHP 단위 그리고 만약 내가 지금 yes를 치면 괜찮아 렌더링해야합니다 우리는 많은 선택권을 얻고 있지만 뭔가를하고 싶다는 것을 알 수 있습니다 그것은 단지 PHP 유닛에 관련된 명령이나 관련 함수를 제공하지 않고 있습니다 우리가 가지고있는 많은 정보를 볼 수 있지만 우리가 원하는 정보 나는 뭔가를 만들었습니다

나는 그것을 확인하고 싶습니다 PHP 유닛 dot XM이라고하는 PHP 유닛을위한 새로운 파일을 생성해야합니다 XML 파일이므로 XML로 시작하고이 XML을 닫습니다 또한 이것은 좋은 그리고 가까운 슬래시 버전의 XML 버전 우리는 우리가 인코딩 할 필요가 없다는 것과 그렇지 않은 것을 하나의 포인트로 사용하게 될 것입니다 인코딩은 utf-8 간단한 것들이며, 우리는 PHP 단위를 말할 것입니다

XML 부분을 시작할 것입니다 여기서는 PHP 단위를 닫습니다 이 PHP 유닛이 시작될 곳에서 정의해야하는이 태그 CSS 부트 스트랩이 아닌 시작 지점을 의미하는 부트 스트랩을 말하고 싶습니다 시작 지점에서 스타일을 지정하여 실제로 부트 스트랩이 공급 업체 내부에 있음 당신이 얻을 것이다 벤더 폴더에 가면 이것은 자동로드 PHP 파일을 가지고 있습니다 이 자동로드 파일은 목적을 초기화하기위한 것입니다

이것이 이것이 이렇게 있어야한다는 것을 기억하십시오 XML이 좋으며 우리가 필요로하는이 PHP 유닛 태그 안에 괜찮습니다 정의 할 필요가있는 두 개의 태그가 있습니다 첫 번째 테스트 슈트는 무엇입니까? 이것이 F와 함께 있어야한다는 것을 기억하고 이것 안에 테스트 슈트가 있어야합니다 우리가 단 하나의 단수 테스트 슈트가 필요없는 복수형 테스트 슈트가 아닌 F 우리가이 테스트 슈트를 가지고 있는지 확인하십시오

디렉토리에 테스트를 넣어 디렉토리를 만들자 이 디렉토리와 디렉토리 이름은 우리가 생성 할 테스트입니다 아직 말하지 마라 유닛 테스트는 간단합니다 따라서 tests라는 새 폴더를 만들고 tests 폴더 안에 또 다른 폴더가 있습니다

여기에는 unit이라는 테스트 폴더가 없습니다 테스트 및이 부분은 그냥 PHP 단위 말할 괜찮을거야 tests 폴더에서 시작합니다이 테스트 폴더 내부에 어떤 것이 있으면 무엇이든 얻을 수 있습니다 테스트의 종류는 그렇게 보입니다 만약 당신이 무언가를 발견한다면, 그 테스트를 만드십시오

그럼 이제이 터미널 통합 터미널에 가서 여기를 지우면 어떻게 될까요? 한 번 더 벤더 빈을 실행하자 PHP 단위 결과를 보자 테스트가 실행되고 마지막 테스트와이 테스트의 차이점을 확인할 수 있습니다 그러나 색상을 정의하자 그리고 우리는 단지 okay가 나에게 어떤 색을 보여줄 것이라고 말할 것이다 이 PHP 유닛을 사용할 때 내가 지금 가면이 시간을 볼 수 있습니다

색상이 없는지 테스트하지 않는 것이 좋습니다 자세한 것은 장황색입니다 지금 우리가 다른 관련 정보를 볼 수 있다고 말한다면 이 테스트와이 테스트는 테스트와 관련하여 더 많은 정보를 제공합니다 이름이 실패 할 때 마지막으로 몇 가지 테스트가있을 때마다 가득 채워서 다른 테스트를 중단 했으므로 우리의 테스트가 완료되지 않았 음을 알리는 좋은 아이디어가 있습니다 그래서 우리의 PHP 단위 점 XML 파일은 완전하게 끝났습니다

내가 벤더 슬래시 빈 슬래시 PHP 단위에 쓸 때마다 알고 나는 이것을 실제로 좋아하지 않기 때문에 어떤 종류의 지름길이 필요하고 우리는 가지고 있지 않다 어떤 종류의 테스트이라도 테스트가 실행되지 않았으므로이 테스트를 만들 것입니다 단위 유닛 폴더에 저장되며 비아에 필요한 패키지 또는 확장 코드를 작성하지 않고이 테스트를 완벽하게 수행하는 코드 다음 에피소드에있는 것들은 그래서 구독하고 잊지 말고 종을 치십시오 동영상을 업로드 할 때마다 즉시 알림을받을 수 있습니다 페이스 북 트위터 Instagram LinkedIn에 영화와 함께 당신은 다음을 찾을 수 있습니다 동영상 링크가 설명과 전체 재생 목록에 표시되므로 만나겠습니다

그때까지의 다음 에피소드