unittest param order is the opposite of Jest

Fullchee ZhangFullchee Zhang
1 min read

Table of contents

which is the opposite order for Jestexpect(myVar).toBe(42)

assumes the first is expected, second is actual in the error message.

self.assertEqual(expected, actual)
self.assertEqual(42, my_var)

PyCharm even displays Expected and Actual

Failure
Expected : 42
Actual   : 4.2

Whereas Jest has the reverse order expect(myVar).toBe(42)

Why

It's a JUnit thing (which unittest is based off)

https://stackoverflow.com/questions/2404978/why-are-assertequals-parameters-in-the-order-expected-actual/57059952#57059952

Pytest

Pytest doesn't care about order

There's even a setting in PyCharm to swap the order

0
Subscribe to my newsletter

Read articles from Fullchee Zhang directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Fullchee Zhang
Fullchee Zhang

React, Django and SQL developer at Forma.ai