diff --git a/dockerimg/parse_args_test.go b/dockerimg/parse_args_test.go
new file mode 100644
index 0000000..7badcb7
--- /dev/null
+++ b/dockerimg/parse_args_test.go
@@ -0,0 +1,69 @@
+package dockerimg
+
+import (
+	"reflect"
+	"testing"
+)
+
+func TestParseDockerArgs(t *testing.T) {
+	tests := []struct {
+		name     string
+		input    string
+		expected []string
+	}{
+		{
+			name:     "empty string",
+			input:    "",
+			expected: []string{},
+		},
+		{
+			name:     "single argument",
+			input:    "--memory=2g",
+			expected: []string{"--memory=2g"},
+		},
+		{
+			name:     "multiple arguments",
+			input:    "--memory=2g --cpus=2",
+			expected: []string{"--memory=2g", "--cpus=2"},
+		},
+		{
+			name:     "arguments with double quotes",
+			input:    "--label=\"my label\" --env=FOO=bar",
+			expected: []string{"--label=my label", "--env=FOO=bar"},
+		},
+		{
+			name:     "arguments with single quotes",
+			input:    "--label='my label' --env=FOO=bar",
+			expected: []string{"--label=my label", "--env=FOO=bar"},
+		},
+		{
+			name:     "nested quotes",
+			input:    "--env=\"KEY=\\\"quoted value\\\"\"",
+			expected: []string{"--env=KEY=\"quoted value\""},
+		},
+		{
+			name:     "mixed quotes",
+			input:    "--env=\"mixed 'quotes'\" --label='single \"quotes\"'",
+			expected: []string{"--env=mixed 'quotes'", "--label=single \"quotes\""},
+		},
+		{
+			name:     "escaped spaces",
+			input:    "--label=my\\ label --env=FOO=bar",
+			expected: []string{"--label=my label", "--env=FOO=bar"},
+		},
+		{
+			name:     "multiple spaces",
+			input:    "  --memory=2g   --cpus=2  ",
+			expected: []string{"--memory=2g", "--cpus=2"},
+		},
+	}
+
+	for _, tc := range tests {
+		t.Run(tc.name, func(t *testing.T) {
+			result := parseDockerArgs(tc.input)
+			if !reflect.DeepEqual(result, tc.expected) {
+				t.Errorf("Expected %v, got %v", tc.expected, result)
+			}
+		})
+	}
+}
