Модульные тесты Android, требующие контекста

Я пишу свой первый бэкенд базы данных Android, и я борюсь модульному тесту создание своей базы данных.

В настоящее время проблема, с которой я встречаюсь, получает допустимый Объект контекста для передачи моей реализации SQLiteOpenHelper. Существует ли способ получить Объект контекста в расширении класса TestCase? Решение, о котором я думал, состоит в том, чтобы инстанцировать Действия в методе установки моего TestCase и затем присвоения Контекста того Действия к полевой переменной, к которой мои методы тестирования могут получить доступ..., но кажется, что должен быть более легкий путь.

Спасибо за Ваш вход!

Macy

59
задан Macy Abbey 19 January 2010 в 17:54
поделиться

2 ответа

Вы можете попробовать переключиться на AndroidTestcase . От поиска документов, похоже, он должен иметь возможность предоставить вам действительный контекст, чтобы пройти к SQLiteopenheelper.

Редактировать: Имейте в виду, что вам, вероятно, должны иметь настройки тестов в «Проекте тестирования Android» в Eclipse, поскольку тесты будут пытаться выполнить на эмуляторе (или реальном устройстве).

41
ответ дан 24 November 2019 в 18:29
поделиться

Если ваша проблема не требует знания точного количества перестановок или комбинаций, вы можете использовать аппроксимацию Стирлинга для факториала.

Это привело бы к коду так:

import math

def stirling(n):
    # http://en.wikipedia.org/wiki/Stirling%27s_approximation
    return math.sqrt(2*math.pi*n)*(n/math.e)**n

def npr(n,r):
    return (stirling(n)/stirling(n-r) if n>20 else
            math.factorial(n)/math.factorial(n-r))

def ncr(n,r):    
    return (stirling(n)/stirling(r)/stirling(n-r) if n>20 else
            math.factorial(n)/math.factorial(r)/math.factorial(n-r))

print(npr(3,2))
# 6
print(npr(100,20))
# 1.30426670868e+39
print(ncr(3,2))
# 3
print(ncr(100,20))
# 5.38333246453e+20
-121--1302505-

Я думаю, что самое лучшее сделать это разбить библиотеку на 2 dll, один действительно общий, и один (тот, который требует ASP.NET), который загружается только на веб-сайт. Проверка того, работает ли он в настоящее время ASP.NET кажется немного взломом.

Конечно, это зависит от того, сможете ли вы легко это сделать.

-121--3545657-

Необходимо использовать StartStartCase или ServiceStartCase.

3
ответ дан 24 November 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: