Phpunit PHP单元测试-$\u保存到数据库时返回空值的POST

Phpunit PHP单元测试-$\u保存到数据库时返回空值的POST,phpunit,Phpunit,我对php和phpunit测试用例非常陌生。我正在尝试编写一个测试用例,以便在测试用例中使用$\ POST将值保存到数据库中。当我执行测试用例时,POST返回空值。请帮助如何在php单元测试中使用$u POST变量 TEST CLASS- 我看你是个新手。这是件好事 您正在设置$\u POST['value1'],但打算在模型中检索$\u POST['js\u data']['input\u value1'] 但是,除此之外,我可以给你一些建议: 1) 不要在模型中使用$\u POST 2)

我对php和phpunit测试用例非常陌生。我正在尝试编写一个测试用例,以便在测试用例中使用$\ POST将值保存到数据库中。当我执行测试用例时,POST返回空值。请帮助如何在php单元测试中使用$u POST变量

TEST CLASS-

我看你是个新手。这是件好事

您正在设置$\u POST['value1'],但打算在模型中检索$\u POST['js\u data']['input\u value1']

但是,除此之外,我可以给你一些建议:

1) 不要在模型中使用$\u POST 2) 为模型的属性声明公共变量(例如public$value1;public$id;…) 3) 然后,在测试中,您应该设置:$this->obj->value1='xxxx'。。。。。 4) 然后用断言检查输出。SaveData将在您编写的函数中返回一个字符串。总是。所以你应该试试assertEquals 5) 您可以将assertNotNull作为辅助断言,因为您的代码可以更改。测试代码应该做什么和不应该做什么是一个好的实践

顺便说一句,你应该试着了解更多关于模型代表什么的知识。不断改进

  public function setUp() {
      $this->resetInstance();
      $this->CI->load->model('save_data_model');
      $this->obj = $this->CI->save_data_model; 
  }  

 public function test_SaveData()
  {              
    $_SERVER['REQUEST_METHOD'] = 'POST';
    $_POST = array('value1'=>'10','value2'=>'100');     
    $actual = $this->obj->SaveData('1');
    $this->assertNotNull($actual);
   }

  }

     MODEL  -

    public function SaveData($id)
    {
        $sql['value1'] = $_POST['js_data']['input_value1'];
        $sql['value2'] = $_POST['js_data']['input_value1'];
        $sql['id'] = $id;

        if(!empty($id))
            {
                $this->db->where('id',$id);

                if($this->db->update('table_name',$sql))
                {
                    return 'Updated';
                }
                else
                {
                    return 'Not Updated';
                }
            }
    }

    Severity: NoticeMessage:  Undefined index: js_dataFilename in SaveData.php
    Database error: A Database Error Occurred

    NULL VALUE FOR value1
    UPDATE `table_name` SET `value1` = NULL, `value2` = NULL
    WHERE `id` = '1'