Skip to content

assert_or_save_expected Operator

The assert_or_save_expected operator validates pipeline output against expected results.

Syntax

| assert_or_save_expected(<file_path>)

Description

This operator serves as a testing mechanism that either compares current pipeline output with stored expected results or saves the current output for future validation. The behavior depends on whether the target file exists.

Parameters

  • file_path: String expression for the file path containing expected results

Examples

Basic Usage

| assert_or_save_expected("expected_results.json")
| assert_or_save_expected("tests/test_case_1.json")
| assert_or_save_expected("validation/" + test_name + ".json")

In Test Flows

create flow test_aggregation as
  test_data
  | summarize { count: count(), sum: sum(value) } by category
  | assert_or_save_expected("expected_aggregation.json")

create flow test_filtering as
  sample_data
  | where value > 10
  | select { id, filtered_value: value }
  | assert_or_save_expected("expected_filtered.json")

With Data Transformation

create flow test_transformation as
  input_data
  | select { 
      id, 
      computed: value * 2,
      status: if(value > 5, "high", "low")
    }
  | assert_or_save_expected("expected_transformed.json")

Testing Modes

Assert Mode

When the expected file exists, the operator compares the current output with the expected results and fails if they don't match.

Save Mode

When the expected file doesn't exist, the operator saves the current output as the expected results for future comparisons.

File Format

The expected results file should contain the expected output in JSON format, typically an array of documents that match the pipeline output structure.

Performance Considerations

  • File I/O operations for comparison can be slow
  • Large expected result files may impact performance
  • Use in development and testing environments only
  • Consider smaller test datasets for frequent testing