Having a straightforward name is the first step of being easy to read.

The second step should be a body that is conventional for the project and in most cases that would be the triple A: Arrange, Act, Assert. This AAA approach means that you setup everything in first part of the test then do the action with the system under test (SUT) and finally assert your expectations.

describe `Add/2`
	test "Should return the sum when two integers are given"
		# Arrange
		p1 = 4
		p2 = 9
		expected = 13
		
		# Act
		result = SUT.add(p1, p2)
		
		# Assert
		assert expected == result
	end
 
	# In elixir we could simplify this, as long as it still
	# follows he flow of arrange, act and assert
	for {p1, p2, result} <- [{4, 9, 13}, {2, 2, 4}, {-2, 2, 0}] do
		test "Should return #{result} when the parameters are #{p1} and #{p2}"
			# ARRANGE
			# We don't need these assigns but it portrays the
			# idea of setting up dependencies first
			param1 = p1
			param2 = p2
			
			# ACT + ASSERT
			assert result = SUT.add(param1, param2)
		end
	end
end