Use the documented software interface for your installed version as the boundary, then make unsupported calls and wrong arguments fail instead of handing everything another true.
How do I make this UR5e fake disagree with a bad call?
ImranAbbott0044 · 15 Aug 2026, 12:28 UTC
18 replies
Does the screen consume only that status, or does another application decision use it too?
17 pointsAnd test the screen itself. I don't care how correct the decoder is if the last healthy-looking banner stays up after a failed read. That's the bit a person will act on.
18 pointsDaniel, retaining the previous value can help diagnosis, provided it is visibly previous (not still current).
11 pointsDisplay only. I've separated previous from current in the expected results; a failed request must leave current status unavailable. Need the fake to return real-shaped failures now.
12 pointsYes, Mei, history isn't the problem. My objection was the healthy banner. Keep the old value if its age and status are clear.
5 pointsDo not invent a convenient failure shape; use the applicable documented contract and clearly labelled examples, with transport failure and an invalid successful payload as separate cases.
12 pointsStrict substitute now rejects an unsupported method name. That exposed a typo the old mock accepted. Valid success, reported failure and malformed payload examples are in separate tests.
14 pointsWho maintains those examples when the supported version changes?
11 pointsCould you leave their source and version beside them? Future you may be less impressed by today's memory.
20 pointsRecorded sources and target version with each example. Maintainer owns the set. One test now fails because the screen still gives an unknown value a normal status label.
16 pointsKeep that failing case. It is exactly the useful disagreement the original substitute couldn't give you. I'd also inspect whether the displayed reason distinguishes unknown payload from a communication failure, so support doesn't inherit one mysterious blank.
22 pointsReason is separate in the test expectation, not implemented yet. The unknown payload must never reach the normal label lookup.
6 pointsCheck a valid status whose meaning is negative too; a successful read need not report a favourable fixture condition.
20 pointsAdded that case. The documented negative fixture state remains a valid current reading; failed and malformed reads become unavailable. Parser and screen tests pass after the lookup repair.
21 pointsAnd the unsupported-call test still fails the bad call after the repair?
9 pointsYes. Re-ran the whole set: bad method rejected, wrong arguments rejected, valid negative state displayed, failed and malformed responses unavailable, previous value marked old. The offline substitute and these application defects are sorted; controller comparison remains future work.
2 pointsThanks for listing the cases; that gives the next maintainer something repeatable without borrowing your unavailable cell.
10 pointsAdd to the discussion
Welcome to Application Robot
Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.
By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.