2

test_check_footer_visible別のファイルを呼び出そうとしてい.pyます。

origin.pyもっている:

class FooterSection(unittest.TestCase):
    """
    """
    browser  = None
    site_url = None

    def setUp(self):
        self.browser.open(self.site_url)
        self.browser.window_maximize()

        # make footer section
        self._footer = FooterPage(self.browser)

    def test_check_footer_visible(self):
        #press the page down
        self.browser.key_down_native("34")
        self.browser.key_down_native("34")
        self.browser.key_down_native("34")
        print "Page down"
        time.sleep (10)

dest.py私は呼び出す必要がありますtest_check_footer_visible()。それ、どうやったら出来るの?

dest.py次の形式です。

class TestPageErrorSection(unittest.TestCase):
    """
    """
    browser  = None
    site_url = None

    def setUp(self):
        global SITE_URL, BROWSER

        if not BROWSER:
            BROWSER = self.browser

        if not SITE_URL:
            SITE_URL = self.site_url

        BROWSER.open(SITE_URL)
        BROWSER.window_maximize()
        print 'page not found 404 error'
        self._pageerror_section = ErrorSection(BROWSER)

    def _primary_navigation(self):
        # I want to call test_check_footer_visible here.

別のクラスからのクラスメソッドの呼び出しですべてを試しました

4

1 に答える 1

1

(本当にいかがわしいことをしないと -- @glglgl のコメントを参照してください) -- 少なくとも、コードをいくらか変更しない限り、できません。できない理由test_check_footer_visibleは、渡された最初の要素がクラスのインスタンスであると主張するためですFooterSection(そうではありません-それはのインスタンスですTestPageErrorSection)。リファクタリングには (少なくとも) いくつかのオプションがあります。

1)その関数をTestPageErrorSection継承しFooterSectionて直接使用します(たとえばself.test_check_footer_visible() 、クラス名に基づいて、これは私にとって非常に良いオプションのようには思えません

2)test_check_footer_visible()通常の関数を作成します。その後、どちらのクラスからも呼び出すことができます。

3) 3 番目のクラス (例: SectionBase) を作成し、test_check_footer_visibleそのクラスを作成して、他の 2 つのクラスに継承させます。

于 2012-10-25T12:52:56.353 に答える