On test scenario with different config need for differest, i simply do
ConfigFactory.invalidateCaches() in setup().


On Wed, Aug 17, 2016 at 9:43 AM, Edward Zhang <[email protected]>
wrote:

> Sorry I mean "remove" :-)
>
> Thanks
> Edward
>
> On Tue, Aug 16, 2016 at 6:35 PM, Chang Chen <[email protected]> wrote:
>
> > Hi Edward
> >
> > Does remote mean run TestEagleConfig in different JVM?
> >
> > Thanks
> > Chang
> >
> > On Wednesday, August 17, 2016, Edward Zhang <[email protected]>
> > wrote:
> >
> > > TestEagleConfig is not a valid test case because it assumes that it can
> > > initialize EagleConfigFactory, but when we execute multiple test cases,
> > > this may not work as EagleConfigFactory may already be initialized
> before
> > > this test case is executed. So setting "config.resource" will not have
> > any
> > > effect.
> > >
> > > I suggest we remote TestEagleConfig, and also going forward we can need
> > > refactor EagleConfigFactor to be not a singleton but use
> > > com.typesafe.config.Config as constructor parameter.
> > >
> > > Thanks
> > > Edward
> > >
> > > On Tue, Aug 16, 2016 at 4:26 AM, Chang Chen <[email protected]
> > > <javascript:;>> wrote:
> > >
> > > > Hi Guys
> > > >
> > > > In the middle of writing UT for Eagle, we found it is difficult to
> mock
> > > >  EagleConfigFactory, since it has static method. The current
> workaround
> > > is
> > > > introducing powermock, so that we can set manager to mock object ,
> i.e.
> > > >
> > > >    Whitebox.setInternalState(EagleConfigFactory.class, "manager",
> > > > eagleConfigFactory);
> > > >
> > > > This is OK in most cases, but TestEagleConfig.testInit could be
> failed,
> > > > because manager only initialized at first time and
> >  EagleConfigFactory's
> > > > Constructor is private:
> > > >
> > > >    private static EagleConfigFactory manager = new
> > EagleConfigFactory();
> > > >
> > > > EagleConfigFactory actually has two roles, one is factory and another
> > is
> > > > configuration. I propose refactoring EagleConfigFactory and
> distinguish
> > > > these two roles:
> > > >
> > > > public class EagleConfigImpl implements EagleConfig{
> > > > }
> > > >
> > > > public class EagleConfigFactory {
> > > >   public static EagleConfig load(){}
> > > >   public static void reset(EagleConfig config){
> > > >     if (config == null) {
> > > >       //default
> > > >     }else{
> > > >     }
> > > >   }
> > > > }
> > > >
> > > > However doing so, we need call EagleConfigFactory.reset at the
> > beginning
> > > of
> > > >  eagle start.
> > > >
> > > > Any ideas?
> > > >
> > > > Thanks
> > > > Chang
> > > >
> > >
> >
>

Reply via email to