I guess you gave the obvious answer yourself: Don't hardcode the name.
Use a variable, maybe a system setting or something from a config file
that can be accessed by all your apps and put an if/else block in your
provider....

Greetings from Berne,
Stephan

On 31 Dez., 01:05, barry <[email protected]> wrote:
> I have an app that uses a ContentProvider to serve data instead of
> directly accessing the database. The application is working as
> expected but I have a problem with unit tests: how can I force the
> ContentProvider to use a test database rather than a 'live' one? If I
> wasn't using a ContentProvider I could pass a different database name
> to the Constructor of my `SQLiteOpenHelper` sublass, but now the
> database is created with a call to onCreate() in my ContentProvider:
>
>         @Override
>         public boolean onCreate()
>         {
>                 UKMPGDataProvider.init(getContext(), Constants.DATABASE_NAME);
>                 return (UKMPGDataProvider.getWritableDatabase() == null) ? 
> false :
> true;
>         }
>
> As you can see, the database name is hardcoded.
>
> Is there a way to pass a test name into the ContentProvider?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to