私はgrails plugin multi-tenant-single-dbを使用しています。その文脈の中で私はテナントの制限を一時的に取り除くスポークテストを書く必要があります。場所は私のテナントである、私の方法は次のようになりますので、:Spockテスト中のメソッドがクロージャを含むときのテスト
def loadOjectDetails(){
Location.withoutTenantRestriction{
// code here to retrieve specific items to the object to be loaded
render(template: "_loadDetails", model:[ ... ]
}
}
期待通りの方法が実行されますが、テストカバレッジ下の方法を置くしようとするとエラー出力があることを示唆:
groovy.lang.MissingMethodException: No signature of method: com.myPackage.myController.Location.withoutTenantRestriction() is applicable for argument types:
とスタックトレースそこから発する。
これをスタブする必要はありますか? withoutTenantRestrictionは、私のメソッドロジック全体を包むラッパーです。
UPDATE:
given:
params.id = 3002
currentUser = Mock(User)
criteriaSetup()
controller.getSalesOrder >> salesOrders[2]
when:
controller.loadOrderManageDetails()
then:
(1.._) controller.springSecurityService.getCurrentUser() >> currentUser
expect:
view == 'orderMange/orderManageDetail'
model.orderInstance == salesOrders[2]
テストコードはどのように見えますか? – railsdog
要求通りに私のテストコードで質問を更新しました – TroyB