» Acceptance Tests
The framework for Terraform provider development currently relies on the
acceptance test framework
shipped with SDKv2. You will write and run tests with the same steps, and they
are otherwise indistinguishable from testing against SDKv2. The major
difference is in how the provider is specified in the TestCase
struct.
» Specify Providers
In SDKv2, providers were specified by using the Providers
property of the
resource.TestCase
to supply a map of
schema.Provider
s.
For the framework, the same pattern applies, but instead use the
ProtoV6ProviderFactories
property of
resource.TestCase
to supply a map of functions that return a
tfprotov6.ProviderServer
.
To get a tfprotov6.ProviderServer
from a
tfsdk.Provider
,
you need to use the
tfsdk.NewProtocol6Server
helper. For example:
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProtoV6ProviderFactories: map[string]func() (tfprotov6.ProviderServer, error) {
"example_provider": func() (tfprotov6.ProviderServer, error) {
// newProvider is your function that returns a
// tfsdk.Provider implementation
return tfsdk.NewProtocol6Server(newProvider()), nil
},
},
CheckDestroy: testAccCheckExampleResourceDestroy,
Steps: []resource.TestStep{
{
Config: testAccExampleResource,
Check: testAccCheckExampleResourceExists,
},
},
})
See the TestCase
documentation for more
information on using resource.TestCase
.
Note: We anticipate releasing an improved testing experience for the framework in the near future.