我无法通过$ _GET ['month']和$ _GET ['day']进行单元测试
$url = "https://api.abalin.net/get/namedays?day=5&month=2";
$response = $this
->json('GET', $url);
//也尝试过
$var = ['month' => '2', 'day' => '5'];
$url = "https://api.abalin.net/get/namedays?day=5&month=2";
$response = $this
->json('GET', $url, $var);
执行后,两者都将在这种情况下失败
if (!isset($_GET['month']) || !isset($_GET['day'])){
//
}
答案 0 :(得分:0)
如果您使用的是laravel,则$ _GET不是理想的测试方法。另外,laravel的测试设置非常好,可以避免自己做事。
此documentation包含您需要的示例。
此外,单元测试是关于测试预期的输出,或者在某些情况下可能正在测试直到输出之前的数据转换过程。
对于您来说,如果您的测试本身通过GET方法中的url参数,那么测试它是否包含紧随其后的那些参数并没有真正的帮助。相反,您应该针对期望的响应声明测试。
这是一个非常简单的示例:
<?php
$response = $this->json('GET', '/url',['month' => '2', 'day' => '5']);
// Check if response is successful with status code 200
$response->assertStatus(200);
// Check if response contains an expected data, for example `status` as `success`
$response->assertJson(['status' => 'success'];
如果您要进行拉播,this将帮助您入门。