1

我有一个非常复杂的数据结构,比如 10 个没有连接表的表。我的应用程序需要能够在大多数表中执行搜索。

为此,我想将搜索字段的内容转换为条件数组。key为型号名称,value为搜索条件,即

$conditions = array(
        'Artist' => array(
                'OR' => array(
                    'Artist.name LIKE' => '%barl%', 
                    'Pseudonym.name LIKE' => '%barl%'
                    )
                ),
        'Content' => array('Content.subject' => 'architecture'),
        'Editor'  => array('Editor.name LIKE' => '%Gal%'),
        etc....
    )

该数组被传递给可搜索的模型,每个模型都采用相关的条件。

$this->find('all', array('conditions' => $conditions['Artist']))

到目前为止一切都很好,至少我认为。现在我开始测试模型,我发现自己在不同的模型测试用例中一遍又一遍地复制同一个数组,这让我很困扰。

有没有办法让每个测试用例都可以访问这个数组?也许数组不是最好的解决方案,我应该做一个搜索模型?

有什么建议么?

4

1 回答 1

0

将数组作为属性放在 app_model.php 中,就像 $commonSearchConditions 一样,并从应该继承 AppModel 的模型内部访问它们。

根据您的具体操作,如果每个模型的搜索都不同,我将在每个模型测试中都有一个测试用例。如果不是,您可能希望使用您在测试内部创建的测试模型创建一个单独的测试,以仅测试您想要执行的搜索内容。不知道更多就很难说。

于 2011-04-05T13:14:46.607 回答