On Tuesday, 1 September 2015 at 19:42:51 UTC, deadalnix wrote:
On Tuesday, 1 September 2015 at 18:25:06 UTC, H. S. Teoh wrote:
That would explain why GUI apps tend to be buggy and unreliable, and RNGs tend to have unintended biases.

No, actually, GUIs should be written to be testable (e.g., input should be abstracted via dependency injection so that GUI interactions are scriptable, at least inside a unittest, with expected final states).


You can test the framework that way. You can't test the usage of the framework that way, especially if you want rapid iteration.
But at least you can unittest all paths in a template so that every called function occures in at least one test - this is all what is needed for the proposed change of "export", or am I wrong here?

Change the text on a button, the test is broken.
A test for some concrete button?
I would say, thats a little too deep. And of course nothing within a library or exported, I would suspect.

RNGs can be unittested for uniform distribution within certain bounds. Unittest does not necessarily mean checking for equality (even though that's the most common usage).

Sure, and if they work properly, they should fail randomly.
No. Tests for distribution may only sometimes need longer until the statistics come into the valid range. Nevertheless that are useful and valuable tests.

You might be right about concurrent code, though. Unless you make it possible to substitute CPU scheduler via dependency injection, it's probably not unittestable.

It is not unitestable.
But we have concepts like "thread local per default" and message passing that should make avoiding race conditions easier. And concurrent code doesn't prevent us from testing all paths of templates.

Reply via email to