Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
331 views
in Technique[技术] by (71.8m points)

testing - how to test controller failed to save data into database in laravel

I want test my laravel 6 application controller method. One of my controller method is to store data into database. The method code in the controller is like this:

public function store(ContactStoreRequest $request)
    {
        $datas = $request->input();
        $contact = ContactInfo::create($datas);
        if ($contact) {
            return response()->json(['message' => 'success'], 201);
        }
        return response()->json(['message' => 'failed'], 400);
        
    } 

I can test the method by sending a request to the route url like this:

public function test_store_contact_info()
{
    
    $info = factory(ContactInfo::class)->make()->toArray();        
    $response = $this->json('POST', '/api/v1/contact', $info->toArray());
    $response->assertStatus(200);
    $this->assertDatabaseHas('contact_infos', ['email' => $info->email]);
}

Thus I can only test the success stored condition. I want also to test the failed to store data to database( return response()->json(['message' => 'failed'], 400);), How should I do that in the test?

question from:https://stackoverflow.com/questions/65947923/how-to-test-controller-failed-to-save-data-into-database-in-laravel

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...