Я пишу свой первый бэкенд базы данных Android, и я борюсь модульному тесту создание своей базы данных.
В настоящее время проблема, с которой я встречаюсь, получает допустимый Объект контекста для передачи моей реализации SQLiteOpenHelper. Существует ли способ получить Объект контекста в расширении класса TestCase? Решение, о котором я думал, состоит в том, чтобы инстанцировать Действия в методе установки моего TestCase и затем присвоения Контекста того Действия к полевой переменной, к которой мои методы тестирования могут получить доступ..., но кажется, что должен быть более легкий путь.
Спасибо за Ваш вход!
Macy
Вы можете попробовать переключиться на AndroidTestcase . От поиска документов, похоже, он должен иметь возможность предоставить вам действительный контекст, чтобы пройти к SQLiteopenheelper.
Редактировать: Имейте в виду, что вам, вероятно, должны иметь настройки тестов в «Проекте тестирования Android» в Eclipse, поскольку тесты будут пытаться выполнить на эмуляторе (или реальном устройстве).
Если ваша проблема не требует знания точного количества перестановок или комбинаций, вы можете использовать аппроксимацию Стирлинга для факториала.
Это привело бы к коду так:
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.