1

私が取り組んでいるプロジェクトでは、LastEditedフィールドを他のデータと組み合わせて使用​​して、問題のDataObjectに関する情報を推測する必要があります。LastEditedフィールドは通常の状況ではほとんどの場合正常な値であるため、これはほとんどの場合問題ありません。

ただし、コードを単体テストしようとすると、フィクスチャにLastEditedフィールドを設定しているにもかかわらず、データが一時データベースに読み込まれると、LastEditedフィールドが現在の時刻に設定されるという問題が発生します。

私の現在の仮定(サファイアへの最初の洞窟探検によってある程度裏付けられています)は、DataObject :: write()を呼び出すと、LastEditedが現在の時刻に自動的に設定されるというものです(予想される動作)。

私の質問は、この機能を一時的に無効にする方法があるかどうか、またはこれを行うためにサファイアにパッチを適用する必要があるかどうかです。

更新フィクスチャから最後に編集した値を設定できると便利だと判断し、パッチを適用しました。朗報です。silverstripeの次のリリースになります。

4

2 に答える 2

1

単体テストでLastEdited値を設定してみることができます

$this->logInAs('admin');
$page->LastEdited = '2011-11-11 17:00:00';
$page->doPublish();
$this->logOut();

私はそれがうまくいくとかなり確信しています。ところで、フィクスチャの管理メンバーを使用します。

于 2012-01-10T09:34:02.547 に答える
0

生活が楽になるので、私自身の質問に答えます。

これは、Silverstripe3.0で修正される既知のバグです。

于 2012-02-02T00:20:41.020 に答える