Is it too bad to write a really long (more than 200 lines) test method? Or should I break it up into smaller-methods?
You shouldn't (on the whole) create any method that's 200 lines long. If you can break it up, do.
What are you doing in 200 lines? Unit testing should be testing small units of code. Are those 200 lines predominantly assertions? If so, then that might be OK.
The key question is - can someone understand what the method's doing quickly, or is it hard to get your head around?
"Programs should be written primarily to be read by people, and only incidentally to be run by machines." (Abelson & Sussman, Structure and Interpretation of Computer Programs)
200 lines sounds too long. A unit test method is just like any other method. You should use the "Extract Method" refactoring where possible. This will increase the readability of your code.
Edit- as your test is long it could also exhibit a number of test smells like Eager Test.
Usually in the tests that I write I like to quickly see Arrange/Act/Assert. If you've got this over 200 lines it's probably difficult to tell which bit is where.
I would question most any method that came close to 200 lines. Breaking it up should add to intrinsic code readability and could possibly help to identify areas of failure more precisely or otherwise start purring like a cat: of course this depends on the method in question, the language and testing framework used.
Oh, and it likely can :-)
Long methods are undesirable. They are often an indication that a method is doing too much.
The same applies to unit-tests, if not more so. Ideally, you should be able to immediately figure out what a unit-test is testing by looking at it.
One unit-test should test one thing, and you should avoid logic in your unit test in order to avoid having to writing code that tests your unit tests.
Having said that, if most of those 200 lines are setup code to ensure a particular state of your data in order to reproduce a hard-to-test edge case bug, then that might be the only way to do it.
But you should, if possible, try to minimize the number of lines in unit tests. They quickly become very fragile (breaks easily upon modifications) when they are long.
The fact that you ask if you should break it up indicates that you can break it up. I think that especially unit tests should be as small as possible and each one testing only one aspect of your software.