내 응용 프로그램의 단위 테스트를 작성하려고하는데 예를 들어 GET 요청을 테스트하는 방법을 알고 있다고 생각합니다. 컨트롤러 I 테스트가 도착하도록되어 다음과 같은 기능을 가지고 나는 또한이이 경로에서 참조Laravel 4 - 단위 테스트
public function getCreate() {
return View::make('account.create');
}
이
/*
Create account (GET)
*/
Route::get('/account/create', array(
'as' => 'account-create',
'uses' => '[email protected]'
));
것과 같은 파일 '계정보기를 만들'I 테스트를 위해 다음과 같이 나타납니다.
public function testGetAccountCreate()
{
$response = $this->call('GET', '/account/create');
$this->assertTrue($response->isOk());
$this->assertResponseOk();
}
이제이 테스트는 통과하지만 POST 요청을 테스트하려면 어떻게해야합니까? 내가 테스트 할 포스트 기능은 다음이 또한 경로에서 참조
public function postCreate() {
$validator = Validator::make(Input::all(),
array(
'email' => 'required|max:50|email|unique:users',
'username' => 'required|max:20|min:3|unique:users',
'password' => 'required|min:6',
'password_again' => 'required|same:password'
)
);
if ($validator->fails()) {
return Redirect::route('account-create')
->withErrors($validator)
->withInput();
} else {
$email = Input::get('email');
$username = Input::get('username');
$password = Input::get('password');
// Activation code
$code = str_random(60);
$user = User::create(array(
'email' => $email,
'username' => $username,
'password' => Hash::make($password),
'password_temp' => '',
'code' => $code,
'active' => 0
));
if($user) {
Mail::send('emails.auth.activate', array('link' => URL::route('account-activate', $code), 'username' => $username), function($message) use ($user) {
$message->to($user->email, $user->username)->subject('Activate your account');
});
return Redirect::route('account-sign-in')
->with('global', 'Your account has been created! We have sent you an email to activate your account.');
}
}
}
이 같은 파일 : 나는 다음과 같은 시험을하지만 성공을 쓰기 위해 노력했다
/*
Create account (POST)
*/
Route::post('/account/create', array(
'as' => 'account-create-post',
'uses' => '[email protected]'
));
. 나는 무엇이 잘못되고 있는지 확신하지 못한다. 나는 이것이 데이터를 필요로하고 올바르게 전달하지 못하기 때문에 생각한다. 단위 테스트를 시작하는 어떤 단서, 감사하겠습니다. 당신은 실제로 어떤 성공처럼 보이는없는 것을 말했다하지 않은
There was 1 failure:
1) AssetControllerTest::testPostAccountCreate
Session missing key: email
Failed asserting that false is true.
/www/assetlibr/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:271
/www/assetlibr/app/tests/controllers/AssetControllerTest.php:23
수정하여 감사했습니다! 하지만 나에게 오류를 줄 것이기 때문에 나는 setup 함수를 포함하지 않았다. 오류는 내 테스트를 파괴하고 실행하지 못할거야 – cch