Skip to content

This is the old Algorand Developer Portal. Please head over to dev.algorand.co to explore our newly rebuilt documentation site. Please excuse us as we continue to transition content to the new portal

创建文章

We are looking for publications that demonstrate building dApps or smart contracts!
See the full list of Gitcoin bounties that are eligible for rewards.

Testing

@algorandfoundation/algokit-utils / testing

Module: testing

Table of contents

Classes

Functions

Functions

algoKitLogCaptureFixture

algoKitLogCaptureFixture(): AlgoKitLogCaptureFixture

Creates a test fixture for capturing AlgoKit logs.

Returns

AlgoKitLogCaptureFixture

The fixture

Example

const logs = algoKitLogCaptureFixture()

beforeEach(logs.beforeEach)
afterEach(logs.afterEach)

test('My test', () => {
    const capturedLogs = logs.testLogger.capturedLogs
})
Defined in

src/testing/fixtures/algokit-log-capture-fixture.ts:22


algorandFixture

algorandFixture(fixtureConfig?): AlgorandFixture

Creates a test fixture for automated testing against Algorand. By default it tests against an environment variable specified client if the standard environment variables are specified, otherwise against a default LocalNet instance, but you can pass in an algod, indexer and/or kmd if you want to test against an explicitly defined network.

Parameters
Name Type Description
fixtureConfig? AlgorandFixtureConfig The fixture configuration
Returns

AlgorandFixture

The fixture

Example

const algorand = algorandFixture()

beforeEach(algorand.beforeEach, 10_000)

test('My test', async () => {
    const {algod, indexer, testAccount, ...} = algorand.context
    // test things...
})
Defined in

src/testing/fixtures/algorand-fixture.ts:38

algorandFixture(fixtureConfig, config): AlgorandFixture

Creates a test fixture for automated testing against Algorand. By default it tests against an environment variable specified client if the standard environment variables are specified, otherwise against a default LocalNet instance, but you can pass in an algod, indexer and/or kmd if you want to test against an explicitly defined network.

Parameters
Name Type Description
fixtureConfig undefined | AlgorandFixtureConfig The fixture configuration
config AlgoConfig The algo configuration
Returns

AlgorandFixture

The fixture

Example

const algorand = algorandFixture(undefined, getConfigFromEnvOrDefaults())

beforeEach(algorand.beforeEach, 10_000)

test('My test', async () => {
    const {algod, indexer, testAccount, ...} = algorand.context
    // test things...
})
Defined in

src/testing/fixtures/algorand-fixture.ts:63


getTestAccount

getTestAccount(param0, algod, kmd?): Promise\<Account>

Creates an ephemeral Algorand account for the purposes of testing. Returns a newly created random test account that is funded from the dispenser DO NOT USE THIS TO CREATE A MAINNET ACCOUNT! Note: By default this will log the mnemonic of the account.

Parameters
Name Type Description
param0 GetTestAccountParams The config for the test account to generate
algod default An algod client
kmd? default A KMD client, if not specified then a default KMD client will be loaded from environment variables
Returns

Promise\<Account>

The account, with private key loaded

Defined in

src/testing/account.ts:19


runWhenIndexerCaughtUp

runWhenIndexerCaughtUp\<T>(run): Promise\<T>

Runs the given indexer call until a 404 error is no longer returned. Tried every 200ms up to 100 times. Very rudimentary implementation designed for automated testing.

Type parameters
Name
T
Parameters
Name Type Description
run () => Promise\<T> The code to run
Returns

Promise\<T>

The result (as a promise), or throws if the indexer didn't catch up in time

Example

const transaction = await runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())
Defined in

src/testing/indexer.ts:12