Help:Lua:修订间差异

帮助页面
添加的内容 删除的内容
无编辑摘要
(文本替换 - 替换“的的”为“的”)
 

(未显示同一用户的1个中间版本)

第2,353行: 第2,353行:
* JSON对象会丢弃含有null值的键。
* JSON对象会丢弃含有null值的键。
* 不能直接分辨带有序列整数键的是JSON数组还是JSON对象。
* 不能直接分辨带有序列整数键的是JSON数组还是JSON对象。
* 带有序列整数键从1开始的JSON对象会被解析到作为有相同值的JSON数组的相同的表结构,尽管这些不一定总是相等,除非使用了<code>mw.text.JSON_PRESERVE_KEYS</code>。
* 带有序列整数键从1开始的JSON对象会被解析到作为有相同值的JSON数组的相同的表结构,尽管这些不一定总是相等,除非使用了<code>mw.text.JSON_PRESERVE_KEYS</code>。


==== mw.text.jsonEncode ====
==== mw.text.jsonEncode ====
第2,410行: 第2,410行:


* 以下字符:<code>"</code>、<code>&</code>、<code>'</code>、<code><</code>、<code>=</code>、<code>></code>、<code>[</code>、<code>]</code>、<code>{</code>、<code>|</code>、<code>}</code>
* 以下字符:<code>"</code>、<code>&</code>、<code>'</code>、<code><</code>、<code>=</code>、<code>></code>、<code>[</code>、<code>]</code>、<code>{</code>、<code>|</code>、<code>}</code>
* 字符串开头或新行后面的以下字符:<code>#</code>、<code>*</code>、<code>:</code>、<code>;</code>、空格、制表符('\t')
* 字符串开头或新行后面的以下字符:<code>#</code>、<code>*</code>、<code>:</code>、<code>;</code>、空格、制表符('\t')
* 空行会有关联的新行或返回转义的字符(Blank lines will have one of the associated newline or carriage return characters escaped)
* 空行会有关联的新行或返回转义的字符(Blank lines will have one of the associated newline or carriage return characters escaped)
* 字符串开始处或新行后的<code>----</code>会使得第一个<code>-</code>被转义
* 字符串开始处或新行后的<code>----</code>会使得第一个<code>-</code>被转义
* <code>__</code>会使一个下划线被转义
* <code>__</code>会使一个下划线被转义
* <code>://</code>会使冒号被转义
* <code>://</code>会使冒号被转义
第3,165行: 第3,165行:
Scribunto扩展包括一个用于测试用例的基类<code>Scribunto_LuaEngineTestBase</code>,该类将针对LuaSandbox和LuaStandalone引擎运行测试。
Scribunto扩展包括一个用于测试用例的基类<code>Scribunto_LuaEngineTestBase</code>,该类将针对LuaSandbox和LuaStandalone引擎运行测试。
库的测试用例应该扩展这个类,并且不应该覆盖<code>static function suite()</code>。
库的测试用例应该扩展这个类,并且不应该覆盖<code>static function suite()</code>。
在Scribunto扩展中,测试用例应该在<code>tests/engines/LuaCommon/''Name''LibraryTest.php</code>并添加到{{phpi|ScribuntoHooks::unitTestsList()}}中的数组中(在<code>common/Hooks.php</code>中),扩展应该在自己的<code>[[Manual:Hooks/UnitTestsList|UnitTestsList]]</code>钩子函数中添加测试用例,可能取决于是否设置了<code>$wgAutoloadClasses['Scribunto_LuaEngineTestBase']</code>。
在Scribunto扩展中,测试用例应该在<code>tests/engines/LuaCommon/''Name''LibraryTest.php</code>并添加到{{phpi|ScribuntoHooks::unitTestsList()}}中的数组中(在<code>common/Hooks.php</code>中),扩展应该在自己的<code>[[mw:Manual:Hooks/UnitTestsList|UnitTestsList]]</code>钩子函数中添加测试用例,可能取决于是否设置了<code>$wgAutoloadClasses['Scribunto_LuaEngineTestBase']</code>。


大多数时候,制作测试用例需要做的包括:
大多数时候,制作测试用例需要做的包括:
第3,211行: 第3,211行:
有(至少)两种方式来运行PHPUnit测试:
有(至少)两种方式来运行PHPUnit测试:


# 针对核心运行phpunit,允许tests/phpunit/suites/ExtensionsTestSuite.php使用[[Manual:Hooks/UnitTestsList|UnitTestsList]]钩子找到扩展的测试。 如果您的扩展的测试类名称都包含一个唯一的组件(例如扩展的名称),则可以使用<code>--filter</code>选项以仅运行您的扩展的测试。
# 针对核心运行phpunit,允许tests/phpunit/suites/ExtensionsTestSuite.php使用[[mw:Manual:Hooks/UnitTestsList|UnitTestsList]]钩子找到扩展的测试。 如果您的扩展的测试类名称都包含一个唯一的组件(例如扩展的名称),则可以使用<code>--filter</code>选项以仅运行您的扩展的测试。
# 对扩展目录运行phpunit,这将获取以“Test.php”结尾的任何文件。
# 对扩展目录运行phpunit,这将获取以“Test.php”结尾的任何文件。