单元测试图像文件上传

时间:2019-06-06 08:23:56

标签: php file-upload phpunit

我需要为文件上传编写单元测试。但是我无法弄清楚如何仅使用php代码发布图像。

到目前为止的测试功能:

UPDATE your-table SET sum = value1 - value2

我在管理员模型中验证上传方法:

public function testValidateAddAdminFormSuccess() {
    //prepare
    $testFile = array(
        'name' => 'test.jpeg',
        'tmp_name' => 'Macintosh HD/Applications/mampstack-7.1.30-0/apache2/htdocs/',
        'type' => 'image/jpeg',
        'size' => '6717',
        'error' => 0

    );
    $_FILES['image'] = $testFile;
    $_POST['productName'] = 'test';
    $_POST['price'] = 45;
    $_POST['productDesc'] = 'test description';
    $_POST['storeName'] = 'test store';
    $_POST['amount'] = 204;
    $_GET['product'] = 0;
    $database = new DatabaseTest();
    $adminModel = new AdminModel(NULL, $database);

    //run
    $adminModel->validateAddAdminForm();

    //validate
    $this->assertNotNull($adminModel);
    $this->assertTrue($adminModel->valid);
  }

我的上传验证方法未识别该文件。该方法非常有效,尽管我已经通过自己的管理页面对其进行了测试。如何在不使用网页的情况下上传图像?

在imageErr中设置的错误:“请上传图片”。

1 个答案:

答案 0 :(得分:0)

您应该使用客户端HTTP作为测试代码。 食尸鬼可以通过multipart选项为您提供帮助。与PHPUnit配合使用效果很好。