Как проверить случай ошибки в golang с помощью «entgo.io/ent»

Я пишу код go в проекте, используя ent, и мне интересно, есть ли способы проверить конкретный блок ошибок, выброшенныйSave.

Кто-нибудь знает хорошую практику, чтобы сделать это?

пример тестового целевого кода (из: ent/examples/start/start.go)

      func CreateCars(ctx context.Context, client *ent.Client) (*ent.User, error) {
    tesla, err := client.Car.
        Create().
        SetModel("Tesla").
        SetRegisteredAt(time.Now()).
        Save(ctx)

    if err != nil {
        return nil, fmt.Errorf("failed creating car: %w", err)
    }

    ford, err := client.Car.
        Create().
        SetModel("Ford").
        SetRegisteredAt(time.Now()).
        Save(ctx)

    if err != nil {
        // I want to test this block.
        return nil, fmt.Errorf("failed creating car: %w", err)
    }

    a8m, err := client.User.
        Create().
        SetAge(30).
        SetName("a8m").
        AddCars(tesla, ford).
        Save(ctx)

    if err != nil {
        return nil, fmt.Errorf("failed creating user: %w", err)
    }

    return a8m, nil
}

пример тестового кода

      t.Run("method returns error as expected", func(t *testing.T) {
    user, err := CreateCars(ctx, client)

    // test error message begin with "failed creating car:" here
})

0 ответов

Другие вопросы по тегам