Php 我有一个简单的代码。如何为它编写测试?
当im编写这段代码时,我没有使用phpunit和函数测试,因为我不知道如何为这段代码编写测试。我知道如何为其他函数和代码编写测试,但我不知道这段代码需要哪个测试。有人能解释一下吗? 所有函数都是GoogleAdWordsAPI。不是我自己的。我也不需要测试它们Php 我有一个简单的代码。如何为它编写测试?,php,automated-tests,phpunit,functional-programming,Php,Automated Tests,Phpunit,Functional Programming,当im编写这段代码时,我没有使用phpunit和函数测试,因为我不知道如何为这段代码编写测试。我知道如何为其他函数和代码编写测试,但我不知道这段代码需要哪个测试。有人能解释一下吗? 所有函数都是GoogleAdWordsAPI。不是我自己的。我也不需要测试它们 $adStatsSelector = new AdStatsSelector(); $adStatsSelector->dateRange = new DateRange('20100901','20101001
$adStatsSelector = new AdStatsSelector();
$adStatsSelector->dateRange = new
DateRange('20100901','20101001');
$user = new AdWordsUser();
$user->LogDefaults();
$servicedAccountService = $user->GetServicedAccountService('v201008');
$selector = new ServicedAccountSelector();
$graph = $servicedAccountService->get($selector);
foreach($graph->accounts as &$account) {
$user->SetClientId($account->login);
$campaignService = $user->GetCampaignService('v201008');
$selector = new CampaignSelector(null,null,$adStatsSelector);
$page = $campaignService->get($selector);
$account->campaigns = $page->entries;
}
正如代码所示,很难定义测试,因为它不是我们可以调用的形式;我们不能改变输入并确保获得特定的输出 因此,我所能看到的最好情况是,您可以测试图形是否最终填充了预期的数据。不知何故,您调用了这段代码并查看了图中的内容 现在看看代码,我想到了几个问题:
总结:编写可测试的代码确实有助于您进行测试,在这样做的过程中,您往往会将注意力集中在枯燥但重要的事情上,例如错误处理。就代码而言,很难定义测试,因为它不是我们可以调用的形式;我们不能改变输入并确保获得特定的输出 因此,我所能看到的最好情况是,您可以测试图形是否最终填充了预期的数据。不知何故,您调用了这段代码并查看了图中的内容 现在看看代码,我想到了几个问题:
总结:当你想测试东西时,编写可测试的代码真的很有帮助,在这样做的过程中,你往往会把注意力集中在枯燥但重要的事情上,比如错误处理。+1编写得很好。您可能希望包含一些指向php模拟库的链接,并可能提及IoC/DI。@Klaus谢谢。有一件事让我很困惑,人们有很多好的想法,可以编辑答案并加以改进。这种情况很少发生。如果你有一个最喜欢的模仿库,为什么不编辑答案并提出来呢?你是对的。问题是,我不使用php,我不想推荐我在没有使用它的情况下通过谷歌搜索找到的第一个库。此外,我并没有承诺改善你的答案,并(可能)为你赢得额外的声誉;-)但你是对的。很少有人真正编辑答案。编辑问题更常见。我想这真的与尊重回答者有关(可能还有代表的事情)。@Klaus,我自己实际上没有做过任何严肃的PHP,这就是为什么我不知道有什么样的模拟库可以推荐的原因。声誉当然也是我的一个因素,人类为了回报而工作。很遗憾,这样做并不能为协作工作提供切实的回报。谢谢,你的回答帮助了我。我需要写一个可测试的代码。而且我需要在3d派对课上使用mock。+1写得很好。您可能希望包含一些指向php模拟库的链接,并可能提及IoC/DI。@Klaus谢谢。有一件事让我很困惑,人们有很多好的想法,可以编辑答案并加以改进。这种情况很少发生。如果你有一个最喜欢的模仿库,为什么不编辑答案并提出来呢?你是对的。问题是,我不使用php,我不想推荐我在没有使用它的情况下通过谷歌搜索找到的第一个库。此外,我并没有承诺改善你的答案,并(可能)为你赢得额外的声誉;-)但你是对的。很少有人真正编辑答案。编辑问题更常见。我想这真的与尊重回答者有关(可能还有代表的事情)。@Klaus,我自己实际上没有做过任何严肃的PHP,这就是为什么我不知道有什么样的模拟库可以推荐的原因。声誉当然也是我的一个因素,人类为了回报而工作。很遗憾,这样做并不能为协作工作提供切实的回报。谢谢,你的回答帮助了我。我需要写一个可测试的代码。我需要在3d party类中使用Mock。你测试一下,对于给定的输入,你会收到一个特定的预期输出。您的问题和包含的代码都没有显示输入和输出是什么。请澄清,我们可能会帮助您为其编写一个测试。您对给定的输入进行测试,您将收到特定的预期输出。您的问题和包含的代码都没有显示输入和输出是什么。请澄清,我们可能会帮助您编写测试。
graph = getGraph(start, end, version)