cat does not add newlines. The newline is already present at the end of test1. This is normal: a text file consists of a sequence of lines, and a line consists of a sequence of printable characters followed by a newline character. Thus all non-empty text files end with a newline character.
If you have two text files, and you want to concatenate them together, use cat. You'll get the lines of the first file followed by the lines of the second file.
If you want to do something more complicated, viz, join the last line of the first file with the first line of the second file, you need a more complicated command. For example, you can strip the last character of the first file, and append the second file. With GNU coreutils (i.e. on non-embedded Linux), you can do this:
{ <test1 head -c -1 && cat test2; } >test3
or in two steps:
<test1 head -c 1 >test3 && <test2 cat >>test3