The Writing functional tests portion of the documentation is pretty skimpy and lacks details on submitting mock form values completely. I somehow (can’t remember how/where) determined you can submit basic form values (mocking a POST request) by passing a Map to FakeRequest like so:
val Some(result) = routeAndCall(FakeRequest(POST, "/path/to/test", FakeHeaders(),
Map("postedVariable" -> Seq("and a value"))))
However, that doesn’t seem to allow for the case of an “uploaded” file.
Our file upload tests look something like this:
where
"image"is the name of the HTML form element you expect to find the file contents in.If you are using
BodyParsers.maxLengthto limit the size of uploads, you can replaceformDatawithRight(formData)