Make `UnexpectedNilError` un-rescueable from tests
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia individuando UnexpectedNilError e l’implementazione di not_nil!, quindi esamina come il progetto invoca minitest o RSpec. Determina come i test possano impedire che un semplice rescue => e nasconda questo errore senza mandare in crash il test runner. Il lavoro è completo quando l’errore rimane non intercettabile dal normale codice di test, mentre minitest e RSpec continuano a essere eseguiti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It currently inherits from Exception, so that a bare rescue => e doesn't unintentionally rescue it. We've already run into a real-world case where that proved useful, where a fork of the not_nil! implementation made it derive from StandardError, which indeed hid a test failure (only detected because we switched that copy of the code to use Type Toolkit).
To make it truly uncatchable, we can do something like throw Object.new. In a production app, this would crash your Rails app with UncaughtThrowError, so we'd have to limit it to tests. But we also don't want to crash minitest/RSpec, so we'd need to wrap the test runner in a catch call. We would need some kind of secret-ish tag to throw, that only the test runner can catch.
- Lingua principale
- Ruby
- Stelle
- 3
- Fork
- 5
- Merge medio
- 8g 23h
- PR unite (30g)
- 8
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Shopify/type_toolkit
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
Shopify/type_toolkit#4 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Shopify/type_toolkit#45 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Shopify/type_toolkit#14 ·
-
good first issue
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Shopify/type_toolkit#11 · 3 commenti ·
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
Shopify/type_toolkit#10 ·
Tutte le issue di Shopify/type_toolkit
Issue simili
-
user-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Kong/developer.konghq.com#7316 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
TheOdinProject/curriculum#31408 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
CI: json 3.0.2 removed `quirks_mode`, breaking ActiveSupport's JSON encoder on every test job Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
bensheldon/good_job#1816 · 5 commenti ·