Супер опоздал на вечеринку, но мне не удалось сделать эти работы для setUpClass
.
Вот версия ответа @ Хавьера , которая дает setUpClass
доступ к динамическому выделенные атрибуты.
import unittest
class GeneralTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
print ''
print cls.p1
print cls.p2
def runTest1(self):
self.assertTrue((self.p2 - self.p1) == 1)
def runTest2(self):
self.assertFalse((self.p2 - self.p1) == 2)
def load_tests(loader, tests, pattern):
test_cases = unittest.TestSuite()
for p1, p2 in [(1, 2), (3, 4)]:
clsname = 'TestCase_{}_{}'.format(p1, p2)
dct = {
'p1': p1,
'p2': p2,
}
cls = type(clsname, (GeneralTestCase,), dct)
test_cases.addTest(cls('runTest1'))
test_cases.addTest(cls('runTest2'))
return test_cases
Выходы
1
2
..
3
4
..
----------------------------------------------------------------------
Ran 4 tests in 0.000s
OK
До появления KitKat, отправляемого с помощью функции SmsManager
, приложение отправляет сообщение, чтобы вставить его в Провайдер, поэтому было бы просто опустить это.
Начиная с KitKat, любое приложение который не является стандартным SMS-приложением, и использует SmsManager
для отправки сообщений, будет автоматически передаваться сообщениям Провайдерам в системе. Невозможно предотвратить это, и, кроме того, приложение также не сможет удалить эти сообщения, так как у него не будет доступа на запись к Поставщику. *
Приложение, которое является приложение SMS по умолчанию отвечает за запись своих исходящих сообщений, поэтому он сможет опустить этот шаг. Система не выполняет автоматическую запись для SMS-приложения по умолчанию.
* В 4.4 только есть дыра безопасности, благодаря которой приложение, отличное от по умолчанию, может получить доступ к записи поставщику. Подробно в мой ответ здесь , но он не будет работать в версиях после KitKat.