Reason is simple: in your factory you haven't created any bbb's or ccc's, so you're in the case of "0 objects" (which is a perfectly legal state of "has many"...
If you also want these objects to be created in your factory, you can add something like
after(:build) do |aaa, evaluator|
aaa.bbb << build(:bbb)
aaa.ccc << build(:ccc)
end
to your aaa factory