diff --git a/megaparsec-tests.cabal b/megaparsec-tests.cabal
--- a/megaparsec-tests.cabal
+++ b/megaparsec-tests.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            megaparsec-tests
-version:         9.1.0
+version:         9.2.0
 license:         BSD2
 license-file:    LICENSE.md
 maintainer:      Mark Karpov <markkarpov92@gmail.com>
@@ -31,7 +31,7 @@
         hspec >=2.0 && <3.0,
         hspec-expectations >=0.8 && <0.9,
         hspec-megaparsec >=2.0 && <3.0,
-        megaparsec ==9.1.0,
+        megaparsec ==9.2.0,
         mtl >=2.2.2 && <3.0,
         text >=0.2 && <1.3,
         transformers >=0.4 && <0.6
@@ -50,6 +50,7 @@
     build-tools:      hspec-discover >=2.0 && <3.0
     hs-source-dirs:   tests
     other-modules:
+        Text.Megaparsec.Byte.BinarySpec
         Text.Megaparsec.Byte.LexerSpec
         Text.Megaparsec.ByteSpec
         Text.Megaparsec.Char.LexerSpec
@@ -70,7 +71,7 @@
         hspec >=2.0 && <3.0,
         hspec-expectations >=0.8 && <0.9,
         hspec-megaparsec >=2.0 && <3.0,
-        megaparsec ==9.1.0,
+        megaparsec ==9.2.0,
         megaparsec-tests,
         mtl >=2.2.2 && <3.0,
         parser-combinators >=1.0 && <2.0,
diff --git a/tests/Text/Megaparsec/Byte/BinarySpec.hs b/tests/Text/Megaparsec/Byte/BinarySpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Text/Megaparsec/Byte/BinarySpec.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE TypeApplications #-}
+
+module Text.Megaparsec.Byte.BinarySpec (spec) where
+
+import qualified Data.ByteString.Builder as BB
+import qualified Data.ByteString.Lazy as BL
+import Data.Void
+import Test.Hspec
+import Test.Hspec.Megaparsec
+import Test.QuickCheck
+import Text.Megaparsec
+import Text.Megaparsec.Byte.Binary
+
+spec :: Spec
+spec = do
+  describe "word8" $
+    testParser word8 BB.word8
+  describe "word16le" $
+    testParser word16le BB.word16LE
+  describe "word16be" $
+    testParser word16be BB.word16BE
+  describe "word32le" $
+    testParser word32le BB.word32LE
+  describe "word32be" $
+    testParser word32be BB.word32BE
+  describe "word64le" $
+    testParser word64le BB.word64LE
+  describe "word64be" $
+    testParser word64be BB.word64BE
+  describe "int8" $
+    testParser int8 BB.int8
+  describe "int16le" $
+    testParser int16le BB.int16LE
+  describe "int16be" $
+    testParser int16be BB.int16BE
+  describe "int32le" $ do
+    testParser int32le BB.int32LE
+  describe "int32be" $ do
+    testParser int32be BB.int32BE
+  describe "int64le" $ do
+    testParser int64le BB.int64LE
+  describe "int64be" $ do
+    testParser int64be BB.int64BE
+
+----------------------------------------------------------------------------
+-- Helpers
+
+-- | Test a binary parser.
+testParser ::
+  (Arbitrary a, Show a, Eq a) =>
+  -- | The parser to test
+  (forall s. (Stream s, BinaryChunk (Tokens s)) => Parsec Void s a) ->
+  -- | Builder for the values that the parer consumes
+  (a -> BB.Builder) ->
+  SpecWith ()
+testParser parser serializer = do
+  it "works with strict ByteString" $
+    property $ \x -> do
+      let rendered = (BL.toStrict . BB.toLazyByteString . serializer) x
+      parse (parser <* eof) "" rendered `shouldParse` x
+  it "works with lazy ByteString" $
+    property $ \x -> do
+      let rendered = (BB.toLazyByteString . serializer) x
+      parse (parser <* eof) "" rendered `shouldParse` x
