Best way to assert unit test cases with many conditions
Rob Gaddi
rgaddi at highlandtechnology.invalid
Tue Jul 18 13:10:58 EDT 2017
On 07/18/2017 09:56 AM, Ganesh Pal wrote:
> (1) should I add several asserts per test case, or just warn with the
> error and fail at the end . In the line 33 – 35 / 37-38 ( sorry this is a
> dirty pusedo-code) .
Yes. Just assert each thing as it needs asserting.
>
> (2) Is there a way we can warn the test using assert method and not fail?
> I was trying to see if I could use assertWarns but the help says that
> “The test passes if warning is triggered and fails if it isn’t “.
>
> I don’t want to fail on warning but just continue which next checks
>
You can, but you're just going to complicate your life. A "test" is a
thing that passes (all) or fails (any). If you need it to keep going
after a failure, what you have are two tests. There's nothing wrong
with having a whole mess of test functions. If there's a lot of common
code there you'd have to replicate, that's what setUp() is for. If
there are several different flavors of common code you need, you can
create a base TestCase subclass and then derive further subclasses from
that.
Do the things the way the tools want to do them. Unit testing is enough
of a pain without trying to drive nails with the butt of a screwdriver.
--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order. See above to fix.
More information about the Python-list
mailing list