Terratest выдает ошибку на утверждения об ошибках - PullRequest
3 голосов
/ 27 марта 2020

Здравствуйте, у меня есть следующий тест

func badTags(t *testing.T){
  terraformOptions := &terraform.Options{
        TerraformDir: "../bad_values",
    }
  tags := terraform.Output(t, terraformOptions, "test_required_tags")
  assert.Error(t, tags)

}

Обратите внимание, что значение тега должно выдавать ошибку, но я продолжаю получать следующую ошибку

string does not implement error (missing Error method)

Если я удалю утверждение, ошибка с сообщением String вызывает, как ожидалось. Как я могу утверждать об ошибке?

1 Ответ

0 голосов
/ 31 марта 2020

assert.Error утверждает, что функция вернула ошибку. , это так:

if err == nil {
    t.Error("no error returned")
}

Но здесь данный параметр равен tags, а tags является строка, согласно terratest документации , поэтому вы получаете следующую ошибку:

string does not implement error (missing Error method)

Использование OutputForKeys должно решить вашу проблему, пожалуйста попробуйте это:

func badTags(t *testing.T){
  terraformOptions := &terraform.Options{
        TerraformDir: "../bad_values",
    }
  validTags := terraform.OutputForKeys(t, terraformOptions, []string{"test_required_tags"})
  assert.Contains(t, validTags, "test_required_tags")
}
...