# IDistributedApplicationTestingBuilder Methods

- Package: [Aspire.Hosting.Testing](/reference/api/csharp/aspire.hosting.testing.md)
- Type: [IDistributedApplicationTestingBuilder](/reference/api/csharp/aspire.hosting.testing/idistributedapplicationtestingbuilder.md)
- Kind: `Methods`
- Members: `3`

A builder for creating instances of `Hosting.DistributedApplication` for testing purposes.

## AddResource(T)

- Name: `AddResource(T)`
- Modifiers: `virtual`
- Returns: `IResourceBuilder<T>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs#L502)

```csharp
public interface IDistributedApplicationTestingBuilder
{
    public virtual IResourceBuilder<T> AddResource<T>(
        T resource)
    {
        // ...
    }
}
```

## Parameters

- `resource` (`T`)

## BuildAsync(CancellationToken)

- Name: `BuildAsync(CancellationToken)`
- Modifiers: `abstract`
- Returns: `Task<DistributedApplication>`

Builds and returns a new `Hosting.DistributedApplication` instance. This can only be called once.

```csharp
public interface IDistributedApplicationTestingBuilder
{
    public abstract Task<DistributedApplication> BuildAsync(
        CancellationToken cancellationToken = default(CancellationToken))
    {
        // ...
    }
}
```

## Parameters

- `cancellationToken` (`CancellationToken`) `optional`

## Returns

`Task<DistributedApplication>` -- A new `Hosting.DistributedApplication` instance.

## CreateResourceBuilder(T)

- Name: `CreateResourceBuilder(T)`
- Modifiers: `virtual`
- Returns: `IResourceBuilder<T>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Testing/DistributedApplicationTestingBuilder.cs#L505)

```csharp
public interface IDistributedApplicationTestingBuilder
{
    public virtual IResourceBuilder<T> CreateResourceBuilder<T>(
        T resource)
    {
        // ...
    }
}
```

## Parameters

- `resource` (`T`)
