Я пишу гибкую библиотеку отслеживания ошибок на основе адаптера и предоставляю набор настраиваемых функций утверждения тестов, чтобы упростить работу с интеграционными тестами.
У меня есть что-то вроде
# /lib/test_helpers.ex
...
@doc """
Asserts specific exception and metadata was captured
## Example
exception = %ArgumentError{message: "test"}
exception |> MyApp.ErrorTracker.capture_exception(%{some_argument: 123})
assert_exception_captured %ArgumentError{message: "test"}, %{some_argument: 123}
"""
def assert_exception_captured(exception, extra) do
assert_receive {:exception_captured, ^exception, ^extra}, 100
end
Что передаст точное исключение assert_exception_captured
, но это не работает при попытке сопоставления с шаблоном, например, в структуре исключения.
Я хотел бы иметь возможность сделать это
...
assert_exception_captured _any_exception, %{some_argument: _}
Как я могу заставить эту работу работать с сопоставлением с образцом?
Очень признателен
MyApp.ErrorTracker.capture_exception
? - person Dogbert   schedule 21.11.2017send self(), {:exception_captured, exception, extra}
- person Tarlen   schedule 21.11.2017