【问题标题】:Is PhP Unit Included Automatically by ZEND? [closed]ZEND 会自动包含 PhP 单元吗? [关闭]
【发布时间】:2013-03-08 04:42:44
【问题描述】:

我曾经问过这个代码有什么问题:

static $result = null;

if  (isNull($result))
{
    return $result;
}

在无数次投票之后(问题都消失了),问题是没有这样的东西叫做 isNull 函数。我们拥有的是is_null

太好了。我想知道我最初是如何使用 isNull 的。

原来它是自动完成功能。

现在我发现了为什么我输入 isNull。该功能实际存在。我按 ctrl 单击然后转到

/**
 * Returns a PHPUnit_Framework_Constraint_IsNull matcher object.
 *
 * @return PHPUnit_Framework_Constraint_IsNull
 * @since  Method available since Release 3.3.0
 */
function isNull()
{
    return PHPUnit_Framework_Assert::isNull();
}

/**
 * Returns a PHPUnit_Framework_Constraint_IsTrue matcher object.
 *
 * @return PHPUnit_Framework_Constraint_IsTrue
 * @since  Method available since Release 3.3.0
 */
function isTrue()
{
    return PHPUnit_Framework_Assert::isTrue();
}

它来自一个名为functions.php 的文件。不知道是什么问题

<?php
/**
 * PHPUnit
 *
 * Copyright (c) 2002-2011, Sebastian Bergmann <sebastian@phpunit.de>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   * Neither the name of Sebastian Bergmann nor the names of his
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * @package    PHPUnit
 * @subpackage Framework
 * @author     Sebastian Bergmann <sebastian@phpunit.de>
 * @copyright  2002-2011 Sebastian Bergmann <sebastian@phpunit.de>
 * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
 * @link       http://www.phpunit.de/
 * @since      File available since Release 3.5.0

那是什么?知道该文件是如何进入我的 PHP 的吗?我从来不记得以前有过那个文件。

我从未添加过这个框架。不是我知道的。然而它就在那里。它一定是一些强大的框架。

我如何知道自动完成功能如何认为它是我的代码的一部分?我试过在资源管理器中显示,在导航器中显示,什么都没有。 Windows 资源管理器中没有显示选项。

PhPUnit 一定是一个著名的框架,它在我不知情的情况下进入了我的代码。是ZEND自动安装的吗?

【问题讨论】:

  • 你在问 phpunit 是如何进入你的计算机的?
  • 我不知道它是如何进入你的 PHP 安装的,但它是一个框架,它允许你测试你的脚本是否有错误。 Google 是您的朋友。
  • 如果我知道,这个问题有什么不真实的地方?
  • @Stu,是的,这基本上就是我要问的。
  • 我们对你的困惑表示同情,Jim,但基本上你要问的是你打开冰箱门,看到里面有啤酒,然后你站在冰箱前,门开着并询问房间里的每个人啤酒是如何进入冰箱的。 有人必须把它放在那里。

标签: php phpunit


【解决方案1】:

isNUll() 是 PHPUnit 的一个函数,它是一个“项目”(PHP 框架)。

你的问题好像是:

<?php
 if(myFooRandomFunction($a,$b,2,3.14))
 {
  //do something
 }
}

myFooRandomFunction() 是什么?它会做什么?

没有意义(因为我们讲的是php的函数)!

但是

PHPUnit_Framework_Assert::isNull()

是该框架的一个功能,用于根据此断言测试您的值。显然,isNull 这个名字不是随机的,而是按原样写的,为了让它能被 php 的标准识别出来

【讨论】:

  • 有什么框架?这不是 myFooRandomFunction()。我没有写那个函数。它似乎是一个著名的框架。
  • @JimThio 是 PHPUnit,因为所有答案都建议您
  • PHPUnit 到底是什么,它是如何进入我的框架列表等/这是 zend 的东西吗?
  • @JimThio:冷静下来,伙计。它是怎么来的?我该如何回答这个问题?也许在这里,也许你把它放在这里......不知道,项目不是我的家伙
  • 因为 PHPUnit 必须是有名的东西才能进入我的项目。我认为人们对它很熟悉。
【解决方案2】:

PHP 单元测试是一个 PEAR 库,用于测试 PHP 代码并断言分隔代码中是否满足某些条件。

isNull() 不是 PHP 内置函数。

【讨论】:

  • 如果它不是内置的,为什么它会自动完成?那是什么框架?
  • PHPUnit 如您发布的 cmets 和上面的答案中所述。它处于自动完成状态,因为您的 IDE 在其项目构建中具有该框架。
  • ZEND 中包含这个吗?
【解决方案3】:

PHPUnit 是一个单元测试框架。当您(或某人)将它添加到您的代码中时,它的功能显然在您的代码中随处可用。

这是编程中的常见情况,而不仅仅是 PHP。它发生在每一种语言中——您可以添加其他人的代码或框架或插件或插件,而没有意识到全部含义。在这里,您的框架添加了功能(isNull),如果您决定删除 PHPUnit,这些功能将中断。所以,使用插件是有风险的。

【讨论】:

  • 我从未添加过这个框架。不是我知道的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 2021-12-16
  • 1970-01-01
相关资源
最近更新 更多