我的测试应该失败,但它通过了:publicfunctiontest_getValidProviderCodes(){$aTest=PRIDE\Reflection::executeStaticMethodForClassName(Apps_DoctorsReports::class,"getValidProviderCodes");print_r($aTest);$this->assertContains("xxxxxxxxxxxxxx",$aTest);}输出:Testingstartedat8:53AM...PHPUnit4.6.6bySebastianBergmannandcon
我正在编写单元测试来验证两个库的功能是否相同。本质上,测试接口(interface)。但是,在一些与错误处理相关的测试中。错误级别不同,必须不同,因为例如一个生成E_WARNING,另一个只能生成E_USER_WARNING。那么问题来了。PHP单元中是否有一个断言可以说错误必须是两个可能结果之一?像这样的东西:assertIsIn(array(E_WARNING,E_USER_WARNING),$generatedError);我知道我可以通过在assertContains()中交换预期答案和实际答案或者可能对结果进行一些预断言操作来解决这个问题。然而,有更清洁的方法吗?
我正在使用phpunit编写一些单元测试,现在我想断言数组包含某个值,但我能找到的唯一函数是assertArrayHasKey()。没有任何assertArrayHasValue。所以要明确一点,我想要这样的东西:$a=[5,8,16];assertArrayHasValue(8,$a);欢迎所有提示! 最佳答案 您可以使用函数assertContains()试试这个:$a=[5,8,16];$this->assertContains(8,$a);ASSERT_CONTAINS 关于PH
有没有更好的jUnit编写方式Stringx="foobar";Assert.assertTrue(x.contains("foo")); 最佳答案 如果你添加Hamcrest和JUnit4,你可以这样做:Stringx="foobar";Assert.assertThat(x,CoreMatchers.containsString("foo"));使用一些静态导入,它看起来好多了:assertThat(x,containsString("foo"));所需的静态导入将是:importstaticorg.hamcrest.Match
有没有更好的jUnit编写方式Stringx="foobar";Assert.assertTrue(x.contains("foo")); 最佳答案 如果你添加Hamcrest和JUnit4,你可以这样做:Stringx="foobar";Assert.assertThat(x,CoreMatchers.containsString("foo"));使用一些静态导入,它看起来好多了:assertThat(x,containsString("foo"));所需的静态导入将是:importstaticorg.hamcrest.Match