日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php 单元测试 麻烦,php – 正确的单元测试

發(fā)布時(shí)間:2024/10/8 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 单元测试 麻烦,php – 正确的单元测试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先,如果可能的話,我想稍微改寫一下這個(gè)方法.

public function addUser(User $user)

{

if ($this->doesUserExist($user)) {

throw new UserAlreadyExistException("The user ".$user->getUid()." already exists.");

}

// ... shortened for brevity

$pbnlAccount = $this->userToEntities($user);

$this->ldapEntityManager->persist($pbnlAccount);

}

另一種相關(guān)方法是:

private function doesUserExist(User $user)

{

$users = $this->ldapRepository->findByUid($user->getUid());

return count($users) === 1;

}

我們馬上就可以看到我們基本上有兩個(gè)測(cè)試:

>我們測(cè)試該方法在用戶存在時(shí)拋出

>如果用戶不存在,我們測(cè)試該方法是否持久存在PbnlAccount.

如果你不明白為什么我們有這兩個(gè)測(cè)試,請(qǐng)注意這個(gè)方法中有兩個(gè)可能的“流”:一個(gè)是if語(yǔ)句中的塊被執(zhí)行,另一個(gè)是不執(zhí)行它.

讓我們解決第一個(gè)問(wèn)題:

public function testAddUserThrowsWhenUserExistsAlready()

{

$user = new User();

$user->setUid('123');

$ldapRepositoryMock = $this->createMock(LdapRepository::class);

$ldapRepositoryMock

->method('findByUid')

->expects($this->once())

->with('123')

->willReturn(new PbnlAccount());

$userRepository = new UserRepository($ldapRepositoryMock);

$this->expectException(UserAlreadyExistException::class);

$userRepository->addUser($user);

}

第二次測(cè)試留給讀者練習(xí):)

是的,你必須在你的情況下做一些嘲弄.在這種情況下,您將需要模擬LdapRepository和LdapEntityManager.

注意1:這段代碼可能不是可運(yùn)行的,因?yàn)槲也恢滥愕拇a庫(kù)的確切細(xì)節(jié)(我把它寫在了我的頭頂),但這不是重點(diǎn).關(guān)鍵是你要測(cè)試異常.

筆記2:

我會(huì)將您的函數(shù)重命名為createNewPbnlAccountForUser(User $user),該函數(shù)更長(zhǎng),但更具描述性.

注3:我不確定你為什么要返回$this-> getUserByUid(),因?yàn)槟撬坪跏嵌嘤嗟?你已經(jīng)有用戶了),所以我省略了這種情況.

總結(jié)

以上是生活随笔為你收集整理的php 单元测试 麻烦,php – 正确的单元测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。