#!/bin/bash
IFS=$'\n' # make newlines the only separator
set -f # disable globbing
for i in $(cat < "$1"); do
echo "tester: $i"
done
Note however that it will skip empty lines as newline being an IFS-white-space character, sequences of it count as 1 and the leading and trailing ones are ignored. With zsh and ksh93 (not bash), you can change it to IFS=$'\n\n' for newline not to be treated specially, however note that all trailing newline characters (so that includes trailing empty lines) will always be removed by the command substitution.
Or with readwith read (no more cat):
#!/bin/bash
while IFS= read -r line; do
echo "tester: $line"
done < "$1"
There, empty lines are preserved, but note that it would skip the last line if it was not properly delimited by a newline character.