You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
👋 Hello, I'm seeing the following warnings in my test suite when using Factory Bot:
/factory_bot-6.4.6/lib/factory_bot/attribute_assigner.rb:16: warning: The class User reached 8 shape variations, instance variables accesses will be slower and memory usage increased.
It is recommended to define instance variables in a consistent order, for instance by eagerly defining them all in the #initialize method.
Reproduction Steps
You should be able to reproduce this locally by using export RUBYOPT="-W:deprecated -W:performance" when running the entire Factory Bot test suite.
Expected behavior
I would expect not to see performance warnings when using Factory Bot.
Actual behavior
Here's what I'm seeing:
/factory_bot-6.4.6/lib/factory_bot/attribute_assigner.rb:16: warning: The class User reached 8 shape variations, instance variables accesses will be slower and memory usage increased.
It is recommended to define instance variables in a consistent order, for instance by eagerly defining them all in the #initialize method.
Suggestion
A quick fix would be to ensure all of your lazy initialized instance variables are defined as nil in your constructor. Example:
def initialize
# Original impelmentation...
@method_tracking_evaluator = nil
...etc...
end
Description
👋 Hello, I'm seeing the following warnings in my test suite when using Factory Bot:
Reproduction Steps
You should be able to reproduce this locally by using
export RUBYOPT="-W:deprecated -W:performance"
when running the entire Factory Bot test suite.Expected behavior
I would expect not to see performance warnings when using Factory Bot.
Actual behavior
Here's what I'm seeing:
Suggestion
A quick fix would be to ensure all of your lazy initialized instance variables are defined as
nil
in your constructor. Example:System configuration
factory_bot version: 6.4.6
rails version: 7.1.3.4
ruby version: 3.3.1
The text was updated successfully, but these errors were encountered: