The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
I was upgrading a client website very similar to that. But they also had the concept of "business units" within a Company, each of which would define different features and options. If you were a user that needed to work in different business units, you had to use a separate login for each!
Wow, this application has the same thing!
Some people have around ten accounts, and it's only one account per business unit.
Also makes you wonder why the business accepted this (and why customers aren't complaining)...
They had a fellow fresh out of school develop the site, with no real world experience. It's one thing to know the language elements, but quite another to come up with a realistic architecture - taking the time to think through what would be the best experience for the user.
I replaced the whole mess with ASP.Net Identity, and basically applying a union to the various permissions he had from the various business units. The biggest challenge I had was a migration strategy to move the old accounts into the new system.
Would you agree that the following are true or not?
1) a question posed is usually a simplification or genericisation of the true problem been faced. It may exclude constraints such as memory, time, parallelism, bandwidth, precision, reliability, data size, etc, etc which may impact selection of a solution.
2) any answer to such a question is therefor only partially informed.
3) a variety of 'correct' answers can be made to such a question, but only the questioner has the full context to evaluate the pros and cons of each answer, and hence which may be most suitable to the true problem.
4) any unit tests proposed by the answerer are incomplete due to point 1
5) any unit tests proposed by the answerer cannot anticipate the true edge cases
Would it also be true that the best questions are those that explicitly identify/exlcude constraints. ( E.g I need to sort 10,000 numbers, and have gigabytes of memeory but need to do it as quickly as possible verses I need to sort 10,000 numbers, but only have 1kb memory available...)
Why - so it can be learned by a broader group of people.
Hahaha, that broad group isn't inhibited now; they're free to learn the subject. So no, I won't accept that as a reason.
If I want to add unit-test with my answer on CP, I can do so; simply add a link to the GitHub that contains them.
Next, answers should be short and to the point, with examples being as simple as possible - anything that isn't relevant to the question or answer should not be there; imagine a book to learn C# that has unit-tests for its "Hello world".
Finally, it will mean very few volunteers there; given the questions here (and there), a unit-test is hardly relevant. Also lot of people who might want to answer, and won't (due to the added requirement).
Perhaps you want full XML-documentation too? And did you consider asking for multi-version answers, so that you can download code & unit-test for your exact .NET version? And, if the question involves a database, a complete SQL-script to generate the structure and fill it with test-data? Let's have all that before allowing someone to answer
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
When they can't even get the lusers posting irredeemable drek to post an MCVE; isn't just a bridge too far. It's a bridge from here to Jupiter where the people who're failing to ask good questions have all gone to get more stupider.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
By "unit tests" you probably mean "unit tests, according to test-driven-development standards" (or a TDD variant).
Problems with this idea:
1. You can't learn TDD by code snippets and basic intuition; you learn its theory by organized study, and then do lots of exercises to solidify the knowledge.
2. The vast majority of unit tests written in the industry are by people who don't understand TDD basics. The answers with unit tests will be written (and upvoted) by people who don't understand TDD, accomplishing nothing for beginners hoping to gain useful knowledge.
3. TDD is not as widespread or useful to the industry as it appears. People pay lip service to how wonderful it is, clutter their code with useless unit tests not written according to any real standard, and then proceed to ignore all those useless unit tests 99% of the time (except for the 1% of the time where they talk about how wonderful and useful the unit tests are).