怠惰で2日間アサーションの概要、HHH、あまりないコンテンツ、中unittestのテスト -
アサーションの役割は何ですか?A:テストアサーションを設定した後、テストケースの結果を判断するために私たちを助けることができます。
私たちはの主張を裏付けるunittestのを見て:
上記のアサーションの構文の一般的な理解を持って、我々はそれを使用してコードを参照してください。
:
アサーションassertEqual(a、b)は、2つのパラメータが等しいかを決定することができますが、例えば、我々は、Baiduのホームページのタイトルを取得し、我々は比較を行うためにタイトルを書きます。
1 '「」 2 assertEqualはタイトルを主張()私たちはBaiduのホームページのタイトルを取得のような2つのパラメータを、等しく、我々は比較を行うためにタイトルを書くかを決定することができます。 3 ' '' 4。 インポートunittestの 5 から bokeyuan.bokeyuan_public インポート * 6。 7。 クラス baidu_page(public_baidu): #はクラスpublic_baiduが別のモジュールの.py継承クラスはテストケースを継承 8。 ' '' 9。 、それらの他の継承のモジュールクラスの.py public_baidu、2つのテスト・セットアップとティアダウンメソッドのファームウェアに書き込む必要はありません。 10 ''は、 11 '' ' に直接、実施例で記述された' '' 12は DEFの:test_baidu_title(自己) #限り例で始まるように、関数名はTEST_でなければならないか、ユースケースとして認識されることはありません!! 13 印刷(「取得タイトルです:」、self.driver.title) #は、我々はタイトルの内容に印刷してもらう 14 self.assertEqual(self.driver.title、「Baiduは、あなたが知っている」) #2番目の引数ああ、私たちは小切手を書くために必要なものである 15 16 @staticmethod 17 DEF :スイート(自己) 18 unittest.TestSuiteインスタンス(unittest.makeSuite(baidu_page)) 19 リターン・スイート #呼び出し元に結果を返すようにしてください 20 IF __name__ == ' __main__ ' : 21です unittest.main(冗長= 2).RUN(baidu_page.suite()) #テストスイートスイートを通過ケースbaidu_pageクラス()、スイート()メソッドは、装飾が施されていないので、何のインスタンス化あなたは、直接クラス名を呼び出すことができます
注:等しい、と内容が正確に等しくオハイオ州(1)は、STR(「1」)とint型などの型を、これら2つの1内容は同じですが、彼らはデータの同じタイプではありませんので、それは同じではありませんでなければなりませんああ!そして、文字列データ型は、タイプ2 OHであります!!!あなたはそれを学ぶ二つの等しい意味?
だから、assertNotEqualは(a、b)は代表者が等しくない、あなたは推論が小さな例を書く描くことができますか?タイトル:どのような範囲4 3を決定
メッセージはみんなと友達がお互いから学ぶことはできません〜
2:いるassertTrue(x)は、真の誰もが精通している、ブールデータ型を返し、真の真と偽バーバラは偽偽偽偽です~~
我々は(真の)その後、bool値は確かに真実である、私はあなたが編集できる場合Baiduのホーム・ページの入力ボックスには、コンテンツを入力することができますかを決定、小さなケースを参照してください~~
備考:
so.is_enabled()関数は、テキストボックスなどの要素を編集することができるかどうかをチェックすることです
1 '' ' 2 タイトルは、すなわち条件が真である、真バーバラ~~として採用され、トゥーレを返すいるassertTrue()をアサート 。3 ''' 4 インポートunittestの 5 から bokeyuan.bokeyuan_public インポート * 6 。7 クラス baidu_page( public_baidu): #は別のクラスpublic_baiduの.pyモジュールを継承し、このクラスはTestCaseクラスを継承 8 「」 'ない 9 なぜなら、自分の継承された別のクラスpublic_baiduの.pyモジュールのため、セットアップとティアダウン2を記述する必要試験方法のファームウェア。 10 ''は、 11 '' ' に直接、実施例で記述された' '' 12は DEF:test_baidu_ShuRuKuang(自己) #限り例で始まるように、関数名はTEST_でなければならないか、ユースケースとして認識されることはありません!! 13 '' 'Baiduの入力ボックスが入力されたコンテンツとすることができるホーム認証'' ' 14 SO = self.driver.find_element_by_id(' キロワット' ) 15 self.assertTrue(so.is_enabled()) #これはso.is_enabled()関数は、要素かどうかを確認することですテキストエディットボックス 16 。17 @staticmethod 18は、 DEF スイート(自己): 19 unittest.TestSuiteインスタンス(unittest.makeSuite(baidu_page)) 20で リターンスイート #は、呼び出し側に結果を返す必要があります 21で のIF __name__ == ' __main__ ' : 22である ユニットテスト。メイン(冗長= 2).RUN(baidu_page.suite()) #テストスイートスイートを渡すケースbaidu_pageクラス、()、スイート()メソッドが飾られているので、クラス名をインスタンス化する必要はありません直接呼び出すことができます
ケースはokです見ることができ、記述によって表現さは、あなたがまだいるassertTrue(X)を使用する場合で編集することができますか?それはそれを知らないのか?
偽のための同じassertFalse()、あなたはそれが3〜4等しいかを判断するためにそれを使用することができますか?あなたがそのメッセージを書いていない場合あー、私たちは一緒に勉強します
三、aeertIn(a、b)はないが、A-Bを表し、またはBに含まれています。私たちは、コード例を見て:
1 ''' 2 标题 断言 assertIn(a,b) 代表a是不是被b所包含,a是不是在b里面 3 ''' 4 import unittest 5 from bokeyuan.bokeyuan_public import * 6 7 class baidu_page(public_baidu): #继承了另一个.py模块中的public_baidu类,这个类继承了TestCase 8 ''' 9 因为继承了自己另一个.py模块中的类public_baidu,所以不需要在写setup和teardown两个测试固件的方法。 10 ''' 11 '''直接写用例''' 12 def test_baidu_ShuRuKuang(self): #只要是用例,函数名字开头必须是test_ 不然不会被识别成用例的!! 13 '''验证百度两个字,在百度的title内容中包含''' 14 self.assertIn('百度',self.driver.title) 15 16 @staticmethod 17 def suite(self): 18 unittest.TestSuite(unittest.makeSuite(baidu_page)) 19 return suite #一定要返回结果给调用方 20 if __name__ == '__main__': 21 unittest.main(verbosity=2).run(baidu_page.suite()) #把baidu_page类中的案例,传入到测试套件中suite(),suite()方法是被装饰了的,所以不需要实例化可以直接类名调用
同样的方法,你能有可以用assertIsNot(a, b) 代表a不在b中包含。写一个小案例吗?题目: 字符串 ’b‘ 不在 字符串 ’acc‘ 中包含
今天的内容就是这么多了,其实常用的断言(assert)方法就是这三种,其他的也会用到,但是不要贪,先学会这三种以及相反的三种,就是六种了~~棒~~~
不会的朋友,可以留言,大家一起学习~