首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使一切正常,PHPUnit测试也会显示失败

即使一切正常,PHPUnit测试也会显示失败
EN

Stack Overflow用户
提问于 2013-07-06 16:34:39
回答 1查看 49关注 0票数 0

我有一个控制器可以将语言添加到我的数据库中。早些时候,在控制器的测试类中,添加新语言的测试添加了一种名为“测试语言”的新语言。我还使用以下代码对编辑操作进行了测试:

代码语言:javascript
复制
public function testCanEditLanguageAction()
    {
        $language = $this->em->getRepository('\Entities\Languages')
            ->findOneByEnglishName($this->testLanguage);
        $languageId = $language->getId();
        unset($language);

        $replacementName = 'Esttay Anguagelay';

        // get the form in order to get the hash
        $form = new Application_Model_FormLanguage([
            'action' => '/langauges/edit',
            'id' => $languageId
        ]);

        $this->dispatch("/languages/edit/$languageId");
        $form->render();

        $this->request
            ->setMethod('POST')
            ->setPost([
                'id' => $languageId,
                'englishName' => $replacementName,
                'japaneseName' => '仮の言葉',
                'kanaName' => 'カリノコトバ',
                'languageHash' => $form->languageHash->getValue()
            ]);

        $this->dispatch("/languages/edit");

        $this->assertRedirectTo('/');

        // make sure the data got edited properly
        $editedLanguage = $this->em
            ->getRepository('\Entities\Languages')
            ->findOneById($languageId);

        $this->assertEquals($replacementName, $editedLanguage->getEnglishName());
}

这个测试在很大程度上工作得很好:它正确地获取语言,编辑它,并将值从"Test language“更新为"Esttay Anguagelay”。如果我在测试完成后查看数据库,测试语言甚至有这个值。

根据PHPUnit的说法,问题是测试失败了。我得到以下输出:

代码语言:javascript
复制
There was 1 failure:

1) LanguagesControllerTest::testCanEditLanguageAction
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-Esttay Anguagelay
+Test Language

换句话说,它认为语言的价值没有改变,而它显然已经改变了。(就像我说的,检查数据库的值可以确认它实际上已经改变了)。我是不是漏掉了什么?我对PHPUnit还很陌生,所以可能有一些我忘记做的事情,或者我做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2013-07-08 22:02:27

当字符串不相等时,$this->assertEquals()将抛出错误。如果你不熟悉它,这是一种颠倒的逻辑。因此,您可能希望测试更改后的语言是否与assertEquals匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17501188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档