From noir
Test Noir circuits using nargo test. Covers test attributes, assertions, and organization patterns.
npx claudepluginhub critesjosh/noir-claude-plugin --plugin noirThis skill is limited to using the following tools:
Noir has a built-in test framework that runs alongside your circuit code using `nargo test`. Tests are constrained by default, meaning they generate real constraints and verify circuit behavior under proving conditions.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Noir has a built-in test framework that runs alongside your circuit code using nargo test. Tests are constrained by default, meaning they generate real constraints and verify circuit behavior under proving conditions.
.nr files as circuit code, or in separate test modulesunconstrained to run tests without constraint generation (faster, but less thorough)nargo# Run all tests in the project
nargo test
# Run a specific test by exact name
nargo test --exact test_addition
# Run tests matching a prefix
nargo test test_transfer
# Show println output during tests
nargo test --show-output
fn add(x: Field, y: Field) -> Field {
x + y
}
#[test]
fn test_add() {
assert_eq(add(2, 3), 5);
}
#[test(should_fail_with = "attempt to divide by zero")]
fn test_divide_by_zero() {
let _ = 1 / 0;
}
#[test]
unconstrained fn test_add_unconstrained() {
// Runs faster without constraint generation
assert_eq(add(2, 3), 5);
}
#[test], should_fail, constrained vs unconstrainedassert, assert_eq, debugging with println