I have requested that there be a way in the SeamTest to get the request-scope attributes (and also set one). http://jira.jboss.org/jira/browse/JBSEAM-1657
Ah, and I can justify why now (car rides are always useful for these things). In the Expressions class (and perhaps JSF in general), you cannot set the value of an arbitrary value binding. The root has to resolve to some bean somewhere. However, you can place things manually into different scopes, which Seam handles when it outjects. So by setting the request scope attribute, you are emulating what would occur from an outjection of some other Seam component.
Let me provide an example:
This is fine:
@Name("user") public class User { private String name; // getters and setters }
setValue("#{user.name}", "Mike");
setValue("#{madeupexpression}", "Mike")
@Name("someComponent") public class SomeComponent { @In private String madeupexpression; }
setAttribute("madeupexpression", "Mike") // proposed Component.getInstance("someComponent"); System.out.println("You've got no errors");