テストは完全な動作の保証をしてくれるものではなく、ある程度の品質担保の指標でしか無いので、
結局は実機での動作検証が必要になるので要注意。
複数ブラウザでのテスト自動化するためのツール。
NodeJSで各ブラウザと通信して、テスト実行結果をCLI経由で閲覧することができる。
主要ブラウザはほぼ全て対応済み。
# Usage | |
# git clone [email protected]:/dcd421081bdd96b31f3c.git some-project-name | |
# cd some-project-name | |
# rm -rf .git && git init | |
# vim Vagrantfile # if you need | |
# vagrant up --provision | |
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
VAGRANTFILE_API_VERSION = "2" |
<?php | |
class Ary implements \ArrayAccess | |
{ | |
protected $list; | |
public function __construct(/* $args... */) | |
{ | |
$this->list = func_get_args(); | |
} |
<?php | |
class CLI { | |
/** | |
* CLIオプションを取得する | |
* | |
* PHPのgetopt関数はプラットフォーム依存であり、Macで正常動作しなかった。 | |
* 動作環境に依らないオプションのパースをするには時前パースしか無かった。 | |
* PHP5.1にも対応したライブラリがあればそちらを使うほうが懸命。 | |
* | |
* ## オプションの仕様 |
var SomeCollection = Backbone.Collection.extend({ | |
/** | |
* 同時リクエスト数を制限したリクエストを行う | |
* | |
* RESTに寄せて1個1個のモデルを更新する場合、一気に大量のAjaxが走ることになる。 | |
* サーバ側の不可を考慮し、同時リクエスト数を絞ったAjaxリクエストを行う。 | |
* | |
* 最初に同時リクエスト数分のリクエストを作成し、その後は1個1個の通信が完了するたびに1つずつ次の通信へ移る。 | |
* | |
* 各モデルの保存が完了するごとに...といった処理は事前にイベントリスナを定義しておくこと。 |
function isArray(obj) { | |
var str = Object.prototype.toString.call(obj).slice(8, -1); | |
return (str === 'Array'); | |
} | |
function deepClone(obj) { | |
var copy = isArray(obj) ? [] : {}; | |
for(var p in obj) { | |
if(!obj.hasOwnProperty(p)) continue; |
/vendor/ |
<?php | |
class Model_Book extends \Orm\Model | |
{ | |
const DROP_WORD_LENGTH = 2; | |
protected static $_properties = array( | |
'id', | |
'title', | |
'content', |
<?php | |
$max = 100; | |
$progress = new \Cli\ProgressBar(STDOUT, $max); | |
for($i = 1; $i <= $max; $i++) { | |
$progress->current($i); | |
sleep(1); | |
} | |
$progress->done(); |
テストは完全な動作の保証をしてくれるものではなく、ある程度の品質担保の指標でしか無いので、
結局は実機での動作検証が必要になるので要注意。
複数ブラウザでのテスト自動化するためのツール。
NodeJSで各ブラウザと通信して、テスト実行結果をCLI経由で閲覧することができる。
主要ブラウザはほぼ全て対応済み。
<phpunit | |
colors="true" | |
convertErrorsToExceptions="true" | |
convertNoticesToExceptions="true" | |
convertWarningsToExceptions="true" | |
forceCoversAnnotation="false" | |
printerClass="PHPUnit_TextUI_ResultPrinter" | |
stopOnError="true" | |
strict="true" | |
verbose="true"> |