diff --git a/py_zipkin/logging_helper.py b/py_zipkin/logging_helper.py
index 029fd8f..8fb8b64 100644
--- a/py_zipkin/logging_helper.py
+++ b/py_zipkin/logging_helper.py
@@ -174,10 +174,10 @@ class ZipkinBatchSender(object):
         is_over_size_limit = (
             self.max_payload_bytes is not None and
             not self.encoder.fits(
-                self.queue,
-                self.current_size,
-                self.max_payload_bytes,
-                encoded_span,
+                current_count=len(self.queue),
+                current_size=self.current_size,
+                max_size=self.max_payload_bytes,
+                new_span=encoded_span,
             )
         )
         is_over_portion_limit = len(self.queue) >= self.max_portion_size

Error while encoding Json (_BaseJSONEncoder) 
I'm trying to use Encoding.V2_JSON \ Encoding.V1_JSON  but I'm receiving an exception:

```Traceback (most recent call last):
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/logging_helper.py", line 129, in _emit_spans_with_span_sender
    report_timestamp=self.report_root_timestamp,
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/logging_helper.py", line 180, in add_span
    encoded_span,
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/encoding/_encoders.py", line 141, in fits
    return 2 + current_count + current_size + len(new_span) <= max_size
TypeError: unsupported operand type(s) for +: 'int' and 'list'
```

I use master branch, there is a similar exception for 0.14.1 (I switched to master hoping that the issue was fixed in master):

```Traceback (most recent call last):
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/logging_helper.py", line 129, in _emit_spans_with_span_sender
    report_timestamp=self.report_root_timestamp,
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/logging_helper.py", line 180, in add_span
    encoded_span,
  File "/home/dmytro/anaconda3/lib/python3.6/site-packages/py_zipkin/_encoding_helpers.py", line 343, in fits
    return 2 + current_count + current_size + len(new_span) <= max_size
TypeError: unsupported operand type(s) for +: 'int' and 'list'
```

I tried to debug a little: it seems `_BaseJSONEncoder.fits` expects an integer as the first argument but in `ZipkinBatchSender.add_span` we pass `self.queue` that is in fact a list
diff --git a/tests/conftest.py b/tests/conftest.py
index f3a1841..7f7b7e4 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,5 +1,6 @@
 import mock
 import pytest
+import six
 
 from py_zipkin.encoding._encoders import IEncoder
 from py_zipkin.transport import BaseTransportHandler
@@ -46,8 +47,15 @@ class MockTransportHandler(BaseTransportHandler):
 class MockEncoder(IEncoder):
 
     def __init__(self, fits=True, encoded_span='', encoded_queue=''):
-        self.fits = mock.Mock(return_value=fits)
+        self.fits_bool = fits
         self.encode_span = mock.Mock(
             return_value=(encoded_span, len(encoded_span)),
         )
         self.encode_queue = mock.Mock(return_value=encoded_queue)
+
+    def fits(self, current_count, current_size, max_size, new_span):
+        assert isinstance(current_count, int)
+        assert isinstance(current_size, int)
+        assert isinstance(max_size, int)
+        assert isinstance(new_span, six.string_types)
+        return self.fits_bool
diff --git a/tests/integration/encoding_test.py b/tests/integration/encoding_test.py
index 44454fb..588c8c7 100644
--- a/tests/integration/encoding_test.py
+++ b/tests/integration/encoding_test.py
@@ -16,15 +16,7 @@ from py_zipkin.thrift import zipkin_core
 from py_zipkin import thrift
 from py_zipkin.util import generate_random_64bit_string
 from py_zipkin.zipkin import ZipkinAttrs
-
-
-def mock_logger():
-    mock_logs = []
-
-    def mock_transport_handler(message):
-        mock_logs.append(message)
-
-    return mock_transport_handler, mock_logs
+from tests.conftest import MockTransportHandler
 
 
 def _decode_binary_thrift_objs(obj):
@@ -243,7 +235,7 @@ def test_encoding(encoding, validate_fn):
         flags=None,
     )
     inner_span_id = generate_random_64bit_string()
-    mock_transport_handler, mock_logs = mock_logger()
+    mock_transport_handler = MockTransportHandler(10000)
     # Let's hardcode the timestamp rather than call time.time() every time.
     # The issue with time.time() is that the convertion to int of the
     # returned float value * 1000000 is not precise and in the same test
@@ -284,4 +276,5 @@ def test_encoding(encoding, validate_fn):
                         '2001:0db8:85a3:0000:0000:8a2e:0370:7334',
                     )
 
-    validate_fn(mock_logs[0], zipkin_attrs, inner_span_id, ts)
+    output = mock_transport_handler.get_payloads()[0]
+    validate_fn(output, zipkin_attrs, inner_span_id, ts)

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-benchmark[histogram]
3.6
requirements-dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
coverage==6.2
importlib-metadata==4.8.3
iniconfig==1.1.1
mock==5.2.0
ordereddict==1.1
packaging==21.3
pluggy==1.0.0
ply==3.11
py==1.11.0
py-cpuinfo==9.0.0
-e git+https://github.com/Yelp/py_zipkin.git@2f18c3f2bdbce87d929bead1c555f3404e9371af#egg=py_zipkin
pygal==3.0.1
pygaljs==1.0.2
pyparsing==3.1.4
pytest==7.0.1
pytest-benchmark==3.4.1
six==1.17.0
thriftpy==0.3.9
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: py_zipkin
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - coverage==6.2
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - mock==5.2.0
      - ordereddict==1.1
      - packaging==21.3
      - pluggy==1.0.0
      - ply==3.11
      - py==1.11.0
      - py-cpuinfo==9.0.0
      - pygal==3.0.1
      - pygaljs==1.0.2
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-benchmark==3.4.1
      - six==1.17.0
      - thriftpy==0.3.9
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/py_zipkin

tests/integration/encoding_test.py::test_encoding[Encoding.V1_JSON-check_v1_json] tests/integration/encoding_test.py::test_encoding[Encoding.V2_JSON-check_v2_json]
tests/integration/encoding_test.py::test_encoding[Encoding.V1_THRIFT-check_v1_thrift]
py_zipkin/logging_helper.py
py_zipkin/logging_helper.py