2016-03-21 2 views
-1

Я пытаюсь проверить каждый метод в классе из другого модуля. Итак, вот класс.Как проверить методы класса вне класса в Python?

#newmodule 

class test: 
    def atest(a,b): 
     return a 

    def btest(a,b): 
     return b 

и в другом модуле, я пытаюсь сделать:

import unittest 
import newmodule 
test.atest(5,4).assert not errors 
test.atest(7,9).assert not errors 

Примечание: Я уверен, что есть все виды ошибок, но я просто издевался над этим в качестве примера. Главный вопрос, который я имею здесь, заключается в том, как успешно импортировать newmodule и протестировать каждый МЕТОД. Я подозреваю, что есть сложности с попыткой тестирования методов извне класса, а не только для тестирования функций.

Я уже срывается с места в карьер, потому что я получаю:

ImportError: no module named newmodule 

, даже если они находятся в том же каталоге.

Как успешно импортировать этот модуль, и если да, могу ли я проверить методы вне класса?

+0

Его следует называть 'newmodule.py', а не' newmodule'. Кроме того, методы должны либо принимать аргумент 'self', либо' @ classmethod', либо принимать аргумент 'cls', либо декор' @ staticmethod'. – zondo

ответ

0

«даже если они находятся в одном каталоге». - это не то, находятся ли они в одном каталоге, то ли newmodule находится в текущем рабочем каталоге. Если вы хотите запустить тесты из другого каталога, вы можете добавить каталог сценария в sys.path

import os 
import sys 
sys.path.insert(0, os.path.dirname(__file__)) 
import unittest 
import newmodule 

Этой жесткой-коду, какую версию модуля вы собираетесь тестом теста, так что вы должны решить, что подходит ли вашим целям , В качестве альтернативы вы можете установить переменную envronment PYTHONPATH вне вашего тестового скрипта для большей гибкости.

Смежные вопросы