Railsから来て、私はGrailsで単体テストに苦労しています。 Grailsの中で次のように同等のものは何ですか?Rspecのletに相当するGrailsとは何ですか?
let(:some_variable) { SomeObject.new(name: 'Blabla', ...) }
私は、各テストで使用することができるいくつかの変数を定義したいです。だから、テストは2つの変数を持っているだろうし、応答がサイズ2
Railsから来て、私はGrailsで単体テストに苦労しています。 Grailsの中で次のように同等のものは何ですか?Rspecのletに相当するGrailsとは何ですか?
let(:some_variable) { SomeObject.new(name: 'Blabla', ...) }
私は、各テストで使用することができるいくつかの変数を定義したいです。だから、テストは2つの変数を持っているだろうし、応答がサイズ2
シンプルなケースで、これら二つのオブジェクトの配列をもたらすであろう
def "some test"() {
// given variable1 and variable2
then:
response.json.size() == 2
}
:さらに、私は次のように、オブジェクトが保存されるしたいと思います:
@TestFor(SomeController)
class SomeControllerSpec extends Specification {
def "some test"() {
given:
def var1 = new SomeObject(name:"AAA").save(flush:true)
def var2 = new SomeObject(name:"BBB").save(flush:true)
when:
controller.someAction()
// assuming someAction fetches the SomeObject instances
// and marshals a JSON Response
then:
controller.response.json.size() == 2
}
}
または多分:
@TestFor(SomeController)
class SomeControllerSpec extends Specification {
// var1 and var2 are saved to the DB, and persist across all
// the tests in this specification
def var1 = new SomeObject(name:"AAA").save(flush:true)
def var2 = new SomeObject(name:"BBB").save(flush:true)
def "some test"() {
when:
controller.someAction()
then:
controller.response.json.size() == 2
}
}
しかし、 'let'はテストを通してこの実装を再利用できるようにします。これは、すべての例でそれを繰り返す必要があるようです。 –
または、そのアクションを仕様のsetup()フェーズに配置します。 setup()とcleanup()メソッドも用意されています。テスト時にGrailsのdocsセクションを確認してください。 – railsdog
回答を編集する必要があります。そしてメモをつけて、毎回新しいインスタンスを返すのではなく、オブジェクトを一度作成してから戻します。 –
あなたは、変数と応答について言及したが、何の操作あなたはシークは質問には欠けている。あなたはその質問についてもっと詳しく説明できますか? – dmahapatro