我正在尝试用TD编写TDD并编写一个基于Web的应用程序来访问MySQL数据库中的文章;这是测试功能:
class TestArticleTestCase extends UnitTestCase {
...
public function testArticleGenerateInsertSqlString() {
$testArticle = new Article("12345", "2009-09-13 20:20:20", "Test heading", "Test text");
...
}
这是Article类:
class Article {
private $_articleId;
private $_pubDate;
private $_heading;
private $_text;
public function __construct($articleId, $pubDateUnchecked, $headingUnescaped, $textUnescaped) {
echo "pubDateUnchecked == $pubDateUnchecked </BR>";
...
}
我在构造函数中包含了echo,因为数据库中的日期不是我初始化文章的内容,当然,跟踪问题,这是构造函数中回显的输出:
pubDateUnchecked == 2005-06-01 12:00:00
也许我只是盯着这段代码太长了,但是如何将字符串从我实例化的地方改为直接在实例化的地方,之后我开始将它作为日期操作(我检查它是在允许的日期稍后使用strtotime()和date()格式..)。
有没有人对哪里有什么想法?
谢谢你, 斯蒂芬。
答案 0 :(得分:0)
可能是缓存问题?或者你编辑了错误的文件?之前发生过;-)
在这种情况下,调试器会很有用。但是如果你没有/不能安装一个像
public function testArticleGenerateInsertSqlString() {
$testdata = array(
array('articleId'=>"12345", 'pubDateUnchecked'=>"2009-09-13 20:20:20", 'headingUnescaped'=>"Test heading", 'textUnescaped'=>"Test text")
);
echo '<div>Test. Now=', date('Y-m-d H:i:s'),' modtime(__FILE__)=', date('Y-m-d H:i:s', filemtime(__FILE__)), "</div>\n";
foreach( $testdata as $t ) {
echo "<div>Test. new Article({$t['articleId']}, {$t['pubDateUnchecked']}, {$t['headingUnescaped']}, {$t['textUnescaped']})</div>";
$testArticle = new Article($t['articleId'], $t['pubDateUnchecked'], $t['headingUnescaped'], $t['textUnescaped']);