不同的結果與PHPUnit的測試:的assertEquals和assertTrue給出了相同的變量
$xml_1 = new SimpleXMLElement('<name>Bugs</name>');
$xml_2 = new SimpleXMLElement('<name>Bugs</name>');
$this->assertEquals($xml_1, $xml_2); // Passes
$this->assertTrue($xml_1==$xml_2); // Fails
嗯,什麼?編輯: 不,這不是一個愚蠢的問題。在Python中:
import unittest
class TestEqualityIdentity(unittest.TestCase):
def test_equality(self):
x = 1
y = 1
self.assertTrue(x==y) # Passes
self.assertEqual(x, y) # Passes
if __name__ == '__main__':
unittest.main()
沒理由PHP需要表現得像Python一樣。但是,這在PHP中也不是一個愚蠢的問題。
$x = 1;
$y = 1;
$this->assertEquals($x, $y); // Passes
$this->assertTrue($x==$y); // Passes
EDIT 2 雷蒙德的下面答案是正確的,不要介意在寫這篇文章是3票了。
FWIW,我需要一個if測試比較兩個XML對象的文本節點值,並通過將它們轉換爲字符串得到它。
$this->assertTrue((string) $xml_1== (string) $xml_2); // Passes, works in if test
// Note that simply referring to a SimpleXMLElement _seems_ to give its
// text node.
$this->assertEquals($xml_1, 'Bugs'); // Passes
// This seemed weird to me when I first saw it, and I can't
// say I like it any better now
我會猜測==測試指針相等,並且assertEquals查找值相等。但我無法確切地知道。谷歌應該能夠在這裏幫助你 –
奧雷利奧,感謝您對標題的有用編輯。 – chernevik
@chernevik不客氣。除此之外...... +1 - 這不是一個愚蠢的問題。 –