gonzalo123 / texter
TDD 框架
dev-master
2013-07-29 15:37 UTC
Requires
- mockery/mockery: 0.8.0
- phpunit/phpunit: 3.7.22
- symfony/console: v2.3.2
- symfony/finder: v2.3.2
This package is not auto-updated.
Last update: 2024-09-23 14:13:07 UTC
README
PHP 测试框架,灵感来源于 Jasmine。它不提供新的断言或模拟框架。它使用 PHPUnit 断言。
示例
class StringCalculator { public function add($string) { return (int)array_sum(explode(",", $string)); } } $stringCalculator = new StringCalculator; describe("add mull returns zero", function () use ($stringCalculator) { assertEquals(null, $stringCalculator->add("")); }); describe( "add number returns number", function ($expected, $actual, $message) use ($stringCalculator) { assertEquals($expected, $stringCalculator->add($actual), $message); }, [ ['expected' => 1, 'actual' => "1", 'message' => 'add 1'], ['expected' => 2, 'actual' => "2", 'message' => 'add 1'], ['expected' => 10, 'actual' => "10", 'message' => 'add 10'], ]); describe("1,1 should return 2", function () use ($stringCalculator) { assertEquals(2, $stringCalculator->add("1,1")); });
模拟示例
如果你可以使用模拟,你需要使用外部模拟框架,例如 Mockery
class Temperature { public function __construct($service) { $this->_service = $service; } public function average() { $total = 0; for ($i=0;$i<3;$i++) { $total += $this->_service->readTemp(); } return $total/3; } } $service = m::mock('service'); describe("testing mocks with mockery", function() use ($service) { $service->shouldReceive('readTemp')->andReturn(11, 12, 13); $temperature = new Temperature($service); assertEquals(12, $temperature->average(), "dummy message"); });
如何运行我们的测试
php ./bin/console.php texter:run ./tests
警告
这是一个概念验证。它不是一个稳定的库。还有很多剩余的工作。