Skip to main content

TestBed.solitary()

Creates a test environment where all dependencies are automatically mocked for testing a class in complete isolation.

Signature

TestBed.solitary<T>(targetClass: Type<T>): SolitaryTestBedBuilder<T>

Parameters

ParameterTypeDescription
targetClassType<T>The class constructor to test in isolation

Returns

Returns a SolitaryTestBedBuilder<TClass> instance with methods for configuring the test environment:

  • .mock(dependency) - Configure specific mock behavior before compilation
  • .compile() - Finalizes configuration and creates the test environment

Description

TestBed.solitary() creates a test environment where all of the class's dependencies are mocked by default. This is ideal for testing the internal logic of a class in complete isolation.

Suites automatically identifies and mocks all constructor dependencies, which can then be accessed via unitRef.get(). Learn more in the Virtual Test Container guide.

Configuring Mocks

See Mock Configuration for details on .mock().final() and .mock().impl().

Examples

Basic Usage

// All dependencies of UserService are auto-mocked
const { unit, unitRef } = await TestBed.solitary(UserService).compile();

// Retrieve and configure mocks as needed for a test
const userRepository = unitRef.get(UserRepository);
userRepository.findById.mockResolvedValue(testUser);

Token Injections

// Class with token-injected dependencies
@Injectable()
class PaymentService {
constructor(
@Inject('CONNECTION') private connection: Connection,
@Inject('API_KEY') private apiKey: string
) {}
}

const { unitRef } = await TestBed.solitary(PaymentService).compile();

// Retrieve mocks by token
const database = unitRef.get<Connection>('CONNECTION');
const apiKey = unitRef.get<string>('API_KEY');

Type Safety

All retrieved mocks are fully type-safe, providing autocompletion and compile-time checks.

const repository = unitRef.get(UserRepository);

// ✅ TypeScript knows all methods
repository.findById.mockResolvedValue(user);

// ❌ Compile error: method doesn't exist
repository.invalidMethod.mockReturnValue(123);

See Also