Module: ArchUnit::Testing

Defined in:
lib/archunit/testing.rb,
lib/archunit/testing/color_utils.rb,
lib/archunit/testing/test_result.rb,
lib/archunit/testing/assert_passes.rb,
lib/archunit/testing/rspec_adapter.rb,
lib/archunit/testing/result_factory.rb,
lib/archunit/testing/test_violation.rb,
lib/archunit/testing/minitest_adapter.rb,
lib/archunit/testing/assertion_failure.rb,
lib/archunit/testing/violation_factory.rb,
lib/archunit/testing/layer_violation_formatter.rb,
lib/archunit/testing/slice_violation_formatter.rb,
lib/archunit/testing/metric_violation_formatter.rb

Overview

Violation presentation and test-framework integration.

Defined Under Namespace

Modules: LayerViolationFormatter, MetricViolationFormatter, MinitestAdapter, MinitestAssertions, RSpecAdapter, RSpecMatchers, SliceViolationFormatter Classes: AssertionFailure, ColorUtils, RSpecPassMatcher, ResultFactory, TestResult, TestViolation, ViolationFactory

Class Method Summary collapse

Class Method Details

.assert_passes(rule, options = nil) ⇒ Object

Raises:



13
14
15
16
17
18
# File 'lib/archunit/testing/assert_passes.rb', line 13

def assert_passes(rule, options = nil)
  result = result_for(rule, options)
  return if result.passed?

  raise AssertionFailure, result
end

.format_violations(violations, color: nil) ⇒ Object



17
18
19
# File 'lib/archunit/testing.rb', line 17

def format_violations(violations, color: nil)
  ResultFactory.from_violations(violations, color:).message
end

.result_for(rule, options = nil, expected_to_pass: true) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/archunit/testing.rb', line 21

def result_for(rule, options = nil, expected_to_pass: true)
  unless rule.is_a?(Common::FluentApi::Checkable)
    raise ArgumentError, 'rule must implement Checkable'
  end

  violations = rule.check(options)
  return ResultFactory.from_violations(violations) if expected_to_pass

  ResultFactory.from_violations(violations, expected_to_pass: false)
end