0

私はgrails 1.3.7を使用しています。

コントローラーの単体テストを作成しているときに、コントローラーでのアクションが "findByName('ABC')" などの動的ファインダーを使用しているため、エラーが発生します。動的ファインダーもモックする必要があることを理解しており、それを試してみましたが、残念ながらうまくいきませんでした。使用する必要がある正確なモック スニペットを教えてください。また、これらすべての種類のモックについては、これらすべてを含むドキュメントの URL を提案してください。

また、私の grails アプリでは、「hasMany と belongsTo」として 3 つのドメイン間に関連付けがあります。したがって、コントローラーの単体テストを作成する際に、これらのドメイン クラスをどの程度正確にモックする必要があるかを提案してください。

私はこれらの疑いで立ち往生しているので、できるだけ早く回答するようにお願いします. 前向きな回答をお待ちしております。

ありがとう

4

3 に答える 3

3

がドメインのプロパティである場合、ドメインをモックするnameと、動的ファインダーが「自動的に」モックされます。あなたは単にできるはずです:

mockDomain(YourDomain)

この時点では、null が返されるだけなので、そのクエリでそれらを返したい場合は、いくつかのインスタンスを作成します。

YourDomain instance = new YourDomain(name: 'foo')
mockDomain(YourDomain, [instance])

次に、次のことができます。

assert instance == YourDomain.findByName('foo')
于 2013-03-20T17:17:50.667 に答える
0

ドメイン動的ファインダーをモックするには、次を試してください。

def someDomainMock = new GrailsMock(SomeDomain)
someDomainMock.demand.static.findByName(1..1) { String name ->
    [new SomeDomain(name: name + '_1'), new SomeDomain(name: name + '_2')]
}
于 2013-03-20T10:02:38.570 に答える