php单测mock数据库 php单元测试工具

几种常用PHP连接数据库的代码示例PHP连接数据库之PHP连接MYSQL数据库代码
?php$mysql_server_name= localhost ;//改成自己的mysql数据库服务器$mysql_username= root ;//改成自己的mysql数据库用户名$mysql_password= ;//改成自己的mysql数据库密码$mysql_database= mycounter ;//改成自己的mysql数据库名$conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);$sql= CREATE DATABASE mycounterDEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;;mysql_query($sql);$sql= CREATE TABLE `counter`(`id` INT( ) UNSIGNED NOT NULLAUTO_INCREMENT`count` INT( )UNSIGNED NOT NULL DEFAULTPRIMARY KEY( `id` ) ) TYPE = innodb; ;mysql_select_db($mysql_database $conn);$result=mysql_query($sql);//echo $sql;mysql_close($conn);echo "Hello!数据库mycounter已经成功建立!";?
PHP连接数据库之PHP连接ACCESS数据库代码方法
?$conn = new ("ADODB Connection");$connstr = "DRIVER={Microsoft Access Driver (* mdb)}; DBQ="realpath("data/db mdb");$conn Open($connstr);$rs = new ("ADODB RecordSet");$rs Open("select * from szd_t" $conn );while(! $rs eof) {$f = $rs Fields( );echo $f value;$rs MoveNext();}?
PHP连接数据库之PHP连接MS SQL数据库代码方法
安装SQL服务器并添加PHP的MSSQL扩展
使用以下代码连接并测试
?php$myServer = localhost; //主机$myUser = sa; //用户名$myPass = password; //密码$myDB = Northwind; //MSSQL库名$s = @mssql_connect($myServer$myUser$myPass)or die(Couldnt connect to SQL Server on $myServer);$d = @mssql_select_db($myDB$s)or die(Couldnt open database $myDB);$query = SELECT TitleOfCourtesy+ +FirstName+ +LastName AS Employee ;$query= FROM Employees ;$query= WHERECountry=USA AND Left(HomePhone) = ( );$result = mssql_query($query);$numRows = mssql_num_rows($result);echoh$numRowsRow($numRows ==? : s)Returned / h ;while($row = mssql_fetch_array($result)){echoli$row[Employee]/li;}?
PHP连接数据库之PHP连接Oracle数据库
PHP提供了两套函数与Oracle连接 分别是ORA_和OCI函数 其中ORA_函数略显陈旧 OCI函数更新据说更好一些 两者的使用语法几乎相差无几 你的PHP安装选项应该可以支持两者的使用
?if ($conn=Ora_Logon("user@TNSNAME" "password")){ echo "SUCCESS ! Connected to databasen";}else{echo "Failed : ( Could not connect to databasen";}Ora_Logoff($conn);phpinfo();?lishixinzhi/Article/program/PHP/201405/30761
如何在phpunit中mock一个单例类当我们对A类进行单元测试时,A类可能依赖了B类,为了减少依赖 , 方便A类方法的测试,我们可以模拟一个B类,简单规定其各方法的返回值(而非真正实现具体逻辑) 。Phpunit中提供了一套模拟类的api,简单使用如下:
[php] view
plaincopyprint?
class StubTest extends PHPUnit_Framework_TestCase
{
public function testStub()
{
// Create a stub for the SomeClass class.
$stub = $this-getMock('SomeClass');
// Configure the stub.
$stub-expects($this-any())
-method('doSomething')
-will($this-returnValue('foo'));
// Calling $stub-doSomething() will now return
// 'foo'.
$this-assertEquals('foo', $stub-doSomething());
}
}
class StubTest extends PHPUnit_Framework_TestCase
{
public function testStub()
{
// Create a stub for the SomeClass class.
$stub = $this-getMock('SomeClass');
// Configure the stub.
$stub-expects($this-any())
-method('doSomething')
-will($this-returnValue('foo'));
// Calling $stub-doSomething() will now return
// 'foo'.
$this-assertEquals('foo', $stub-doSomething());
}
}
在这个例子中,我们得到了一个'SomeClass'的模拟,规定其可以被调用任意次,如果调用doSomething方法,将得到值foo 。
问题:
我们知道,对于一个单例类 , 其constructor方法为private,而getMock的实现 , 默认是要调用原类的constructor方法 。

推荐阅读