def test_GetMentions(self): # モックのインタフェースを作成 apiMock = self.mocker.CreateMock(tweepy.API) # モックの戻り値クラスを作成1 userMock1 = self.mocker.CreateMock(tweepy.models.User) userMock1.screen_name = u'testuser1' statusMock1 = self.mocker.CreateMock(tweepy.models.Status) statusMock1.id=100 statusMock1.text=u'test1 status' statusMock1.user=userMock1 # モックの戻り値クラスを作成2 userMock2 = self.mocker.CreateMock(tweepy.models.User) userMock2.screen_name = u'testuser2' statusMock2 = self.mocker.CreateMock(tweepy.models.Status) statusMock2.id=200 statusMock2.text=u'test2 status' statusMock2.user=userMock2 # Twitterクラスを作成 twitter = Twitter() # 対象クラスにMockインタフェースの設定 twitter.api = apiMock # 動作記録をリセット self.mocker.ResetAll() # 動作の記録 apiMock.mentions().AndReturn([statusMock1, statusMock2]) # 動作検証の開始 self.mocker.ReplayAll() lst = twitter.getMentions() # 実動作の確認(正しくないとエラーが出るよ) self.mocker.VerifyAll() # 戻り値が2件であること assert_equal(2, len(lst)) # 正しいデータが取得できること assert_equal(100, lst[0][0]) assert_equal(u'testuser1', lst[0][1]) assert_equal(u'test1 status', lst[0][2]) assert_equal(200, lst[1][0]) assert_equal(u'testuser2', lst[1][1]) assert_equal(u'test2 status', lst[1][2])