扩展程序:Pickle
此扩展与MediaWiki 1.42或更高的版本不兼容! 建议您不要在正常运行的网站上使用此扩展。 我们邀请志愿开发者将 {{Incompatible }} 模板替换为{{Incompatible |version=1.42|pledge=~~~~}} 來承諾更新此扩展使其与MediaWiki 1.42兼容。 |
Pickle 发行状态: 试验版 |
|
---|---|
实现 | 用户界面, 提取数据, API |
描述 | 为Scribunto提供了一个基本的现场测试框架。 |
作者 | |
最新版本 | 0.1.0 |
兼容性政策 | master分支维持向后兼容。 |
MediaWiki | 1.33 - 1.35 |
数据库更改 | 否 |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下載 | README, LDoc |
帮助 | Help:Pickle |
|
|
翻译Pickle扩展 | |
“Pickle”(或“行为驱动开发”、“BDD”、以前的“Spec”)扩展是Scribunto 的“Spec”风格测试的扩展。 规范类型测试与Rspec、Busted和其他类似测试框架中的单元测试类型相同。 它将为PHP和一些Lua模块及其本地化提供非常精简的集成。 实际的代码仍然是有效的Lua,所有的编辑工具都可以工作,除了在各种编辑器中缺少intellisense的定义。
该扩展名被称为“Pickle”,因为您可以随意选择代码。 这也是一场文字游戏;gherkins用于pickles.。在您的代码上。 小黄瓜也是一种“步骤”式测试的语言,一种验收测试,所以你可能会说这类代码片段是“pickles”。
从用户角度对pickle扩展的概述可以在Help:Pickle 处找到。
安裝
pickle依赖于Scribunto 的扩展。 要重新创建基于Vagrant的开发环境,请参见Pickle: Topics/Vagrant。
- 下载文件,并将其放置在您
extensions/
文件夹中的Pickle
目录内。 - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'Pickle' );
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
使用
扩展可以配置为测试的隐式或显式。
隐式风格在describe()
调用上搭载安装,但这取决于函数getfenv()
调用。
unknown error
依赖getfenv()
的原因是函数是在调用describe()
函数之前“”构造的,因此调用运行时环境在没有全局函数的情况下被绑定。
要在正确的运行时环境中插入全局函数,请使用getfenv()
调用describ()。
如果没有
getfenv()
调用,则在创建函数时必须存在正确的运行时环境。
因此,调用describe()
必须安装全局函数。
样式之间的切换由配置
{ "Setup": "implicit" }
or { "Setup": "explicit" }
完成。
如果你有一个像“模:HelloWorld”这样的模块,这是一个无处不在且非常讨厌的例子,它将被编码为
local p = {}
function p.helloWorld()
return "Hi there!"
end
return p
然后在/plickle
子页面上,您可以像下面这样测试
- 隐式
return describe 'Hello world' (function()
subject .helloWorld()
it 'says hello' (function()
expect :toBe("Hi there!");
end)
end)
- 显式
mw.pickle:install()
describe 'Hello world' (function()
subject .helloWorld()
it 'says hello' (function()
expect :toBe("Hi there!");
end)
end)
return mw.pickle:reports()
隐式表单删除了开头和结尾的行,return语句下移到代码的新末尾。
可能还会有其他更改,比如tap()
调用的可用位置,以及可以进行的describe()
调用数量。