Our unavailable FR5 cell has an offline substitute returning true for everything. Fixture-status screen looks fine. How should response tests expose interface mistakes without claiming physical simulation?
Make the software boundary explicit: expected arguments and documented replies for the supported SDK. Then assert what the real parser and display do with those replies, not merely whether something truthy came back.
Then a realistic mock alone won't fix that assertion; your test needs an expected interpreted value and a meaningful failure when the parser produces something else.
Start with a tiny set of documented cases. One successful response and one failed request can tell you a lot before anybody spends a week building simulated machinery you do not need.
Keep each example's source and supported version with the tests, since an old capture can accurately represent a contract the replacement installation no longer uses.
Treat unavailable data as unavailable, rather than swap the default for another normal state. Also exercise malformed replies separately from a documented request failure.
Who owns the real-controller comparison when the station becomes available, so these software results do not silently become the whole release decision?
Keep that comparison read-only and within the approved setup. The substitute checks declared interface behaviour; it establishes nothing about physical handling or the cell's safety functions.