【问题标题】:Unit-testing a functions php对函数 php 进行单元测试
【发布时间】:2013-05-22 14:51:34
【问题描述】:

我是单元测试的新手,我知道如何测试一个包含两个变量的函数,比如这个例子,它包含“$user_id”和“$mysqli”。

function checkbrute($user_id, $mysqli) {
   ...............
    }

我的问题是,我如何测试一个看起来像这样的函数?函数内部没有变量的函数,只包含mysqli连接。

 function login_check($mysqli) {
    .......
    }

谢谢!!

【问题讨论】:

  • 两个例子不是一回事吗?第一个函数是否使用return 语句将两个重载的值返回给函数?
  • 他们都返回了一些东西,对于第一个例子,我写了这个测试用例: $LessThanFive = checkbrute('5', $mysqli); $this->assertFalse($LessThanFive); 5 是 $user_id。和 mysqli 数据库连接。
  • 我不知道如何为第二个示例设置测试用例,请您帮帮我
  • 我当然可以尝试提供帮助,是的。我认为,如果您正在测试 Sql 连接,则应该进行比较,然后断言您所期望的,就像您当前对 $userid 变量所做的那样。

标签: php database unit-testing testing


【解决方案1】:

由于您将 $mysqli 参数作为函数的重载传递,您不会测试 那个 连接对象吗?

例如:

function login_check($mysqli) {    
    if ($mysqli == null)
       $this->AssertFalse($mysqli //there is no connection object);
    else
       $this->AssertTrue($mysqli //the connection string/object is what I am expecting);
    return $mysqli;
}

如果你知道你在连接对象方面期望,你基本上只需要将它存储到一个变量中并比较两者。

【讨论】:

  • 嗯,只是说,你应该知道,任何函数在return 语句之后都会停止执行。所以你必须在return之前执行所有操作。
  • 糟糕,我是想把它往下移。感谢您的纠正。
  • 没有我没有测试 mysqli 连接,在函数“login_check”里面有代码和一个 if,它将数据库密码与一个人输入的密码进行比较。我如何比较它们?该语句返回真/假。
猜你喜欢
  • 1970-01-01
  • 2019-05-16
  • 2021-01-03
  • 2023-03-26
  • 2014-02-08
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2016-10-21
相关资源
最近更新 更多