Grails Spock testing passing dynamic objects in where block
To fix "Only @Shared and static fields may be accessed from here" issue in spock integration test with where block we need to use @Shared annotation while declaring variables and need to initialize them in setupSpec() method
Sample implementation
@TestMixin(IntegrationTestMixin) class SpockExampleIntegrationTests extends Specification { @Shared String email1 @Shared String email2 void setup() { email1 = "mannejkumar@gmail.com" email2 = "jk.manne@yahoo.com" } def testGetEmployeeById() { setup: Employee employee when: employee = employeeService.getEmployeeById(employeeId) then: employee.email == result where: sno | employeeId | result 1 | 1 | email1 2 | 2 | email2 } }
Categories:
Groovy & Grails
,
Spock