8:10 Personally I always find integration tests considerably harder to write (and more time consuming to write in total) than unit tests. I also consider integration tests in general more important than unit tests, because while most units you would unit test are small and simple enough that you can (mostly) make sure that they work by looking at it (and if it isn't, a unit test normally isn't that hard to write, even without a test framework), that doesn't hold for integration tests (let alone even system tests).
@TheOnlyAndreySotnikov10 ай бұрын
42:39 in my 30+ years of development experience I've never seen methods like size()/SIze()/length()... were responsible for any kind of bugs. Unfortunately, 90% of unit tests are that level useless.
@steptoevs99610 ай бұрын
I think the only reason some Developers do not write test, it is because of the overhead of installing dependencies of that or this Framework. C++ still annoying to manage dependencies.
@KX3610 ай бұрын
45:30 I don't think "arrange, assert precondition, act, assert postcondition" is a bad thing, and I might argue it is a single logical assertion as long as the asserts are checking the same thing pre and post action. After all, you don't want to waste time debugging an action that failed its assert because the precondition is not what was expected.
@not_ever10 ай бұрын
That was the point of using sections though. You can clearly define the precondition so if it fails its easier to see at a glance from the test output that your precondition is the problem and when you/others are reading your tests the delimination between pre and post conditions is clear.
@organichand-pickedfree-ran146310 ай бұрын
Is it possible to test for compilation errors these days? Like proper SFINAE use etc. Last time I checked it was impossible to do negative tests for some compile-time things.
@kingduckVI10 ай бұрын
In short: No, it is not really possible. The closest you can get is testing if a concept (C++20) is false, which will test if a certain expression/statement is valid given certain types.
@doBobro10 ай бұрын
"Classical" unit tests are quite damaging for industry concept. Basically it forces you to write enormous amount of testing code and dance with "isolation". Forces you to rewrite enormous amount of code during refactorings (tests doesn't work as refactoring-aid tool) and internal details changes (fragile tests). It's hardly surprising developers don't like to write unit tests.
@TheOnlyAndreySotnikov10 ай бұрын
Also, most unit tests look like this: "auto sqrt(auto x) { return 2; } ASSERT_EQ(2, sqrt(4));" In 90% of companies, unit testing is a cargo cult.