Dzisiaj spojrzymy na sytuację, w której będziemy potrzebowali nie weryfikować, ale zapamiętać wartości przekazywane do mock objects w celu późniejszego ich wykorzystania. Scenariusz ten jest dość nietypowy, w moim przypadku SUT (System Under Test) rejestrował pewną operację w komponencie odpowiedzialnym za jej uruchomienie w odpowiednim momencie. wykonanie. Rejestracja odbywała się z wykorzystaniem wyrażeń lambda, więc przetesowanie rejestrowanej akcji w sposób “zwykły” nie było możliwe. Oto jak to wyglądało:
I jak przetestować faktyczne działanie zarejestrowanej akcji? O tak, z wykorzystaniem funkcjonalności “WhenCalled()“:
Nie jest to zbyt czytelne i nagroda za design roku zdecydowanie mi się nie należy, więc przed zastosowaniem podobnej konstrukcji należy się porządnie zastanowić (następnym razem to zrobię, jak nic). Niemniej jednak – działa jak powinno.