How do I make this UR5e fake disagree with a bad call?

ImranAbbott0044 · 15 Aug 2026, 12:28 UTC

Reply to discussion
IM
ImranAbbott0044
I've checked failed-read display states on another application; this offline UR5e fixture-status job can't even get that far, because every mock method returns true. Controller unavailable. What should the substitute enforce without pretending to model the physical coupon or robot?

18 replies

TO
TobyAllen0318
Replying to ImranAbbott0044

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.

21 points
LU
LucyBarnes0567
Replying to ImranAbbott0044

Does the screen consume only that status, or does another application decision use it too?

17 points
DA
DanielBrown0913
Replying to TobyAllen0318

And 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 points
ME
MeiBrooks0864
Replying to DanielBrown0913

Daniel, retaining the previous value can help diagnosis, provided it is visibly previous (not still current).

11 points
IM
ImranAbbott0044
Replying to LucyBarnes0567

Display 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 points
DA
DanielBrown0913
Replying to MeiBrooks0864

Yes, Mei, history isn't the problem. My objection was the healthy banner. Keep the old value if its age and status are clear.

5 points
TO
TobyAllen0318
Replying to ImranAbbott0044

Do 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 points
IM
ImranAbbott0044
Replying to TobyAllen0318

Strict 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 points
LU
LucyBarnes0567
Replying to ImranAbbott0044

Who maintains those examples when the supported version changes?

11 points
ME
MeiBrooks0864
Replying to LucyBarnes0567

Could you leave their source and version beside them? Future you may be less impressed by today's memory.

20 points
IM
ImranAbbott0044
Replying to MeiBrooks0864

Recorded 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 points
DA
DanielBrown0913
Replying to ImranAbbott0044

Keep 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 points
IM
ImranAbbott0044
Replying to DanielBrown0913

Reason is separate in the test expectation, not implemented yet. The unknown payload must never reach the normal label lookup.

6 points
TO
TobyAllen0318
Replying to ImranAbbott0044

Check a valid status whose meaning is negative too; a successful read need not report a favourable fixture condition.

20 points
IM
ImranAbbott0044
Replying to TobyAllen0318

Added 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 points
LU
LucyBarnes0567
Replying to ImranAbbott0044

And the unsupported-call test still fails the bad call after the repair?

9 points
IM
ImranAbbott0044
Replying to LucyBarnes0567

Yes. 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 points
ME
MeiBrooks0864
Replying to ImranAbbott0044

Thanks for listing the cases; that gives the next maintainer something repeatable without borrowing your unavailable cell.

10 points

Add 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.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.