猿问

使用 php 测试单元

我是使用 php 测试单元的新手,我需要使用 phpunit 测试我的函数 changeStatus,但是我在更改值时遇到了问题。


功能更改状态


public function changeStatus(Genus $genus)

    {

        $isEnabled = $genus->getEnabled();

        $genusGroupTab = self::$entityManager->getRepository(Germ::class)

            ->findBy(['genus' => $genus->getId()]);


        if ($genusGroupTab != null) {

            /** @var Germ $germ */

            foreach ($genusGroupTab as $germ) {

                $germ->setEnabled(!$isEnabled);

                self::$entityManager->persist($germ);

                self::$entityManager->flush();

            }

        }

        $genus->setEnabled(!$isEnabled);

        $this->save($genus);


        return $genus->getEnabled();

    }

在我的课堂上测试这个我有这个代码:


public function testActiveGenusInactiveChangeStatus()

    {


        $genus = $this->createMock(Genus::class);

        $genus->method('setGenusLabel')->willReturn('fefeef');

        $genus->method('getId')->willReturn('3f3c6c06-5971-4e75-97ee-94543edafced');

        $genus->method('getGenusLabel')->willReturn('ACIDAMINOCOCCUS');

        $genus->method('getEnabled')->willReturn(false);



        $germe = new Germ();

        $germe->setGenus($genus);


        $repository = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectRepository')->getMock();


        $this->objectManager

            ->expects($this->once())

            ->method('getRepository')

            ->with(Germ::class)

            ->id($germe->getGenus()->getId())

            ->willReturn($repository);

        $paramGenus = $germe->getGenus();


        $this->assertFalse($this->managerGenus->changeStatus($paramGenus));


    }

我需要这样做:


如果 Genus 的值为 True 但函数 changeStatus 需要返回 False,如果是 False 则需要返回 true。


但是 Value Genus 是 False 并且是 Return False。


有人可以帮助我。


森林海
浏览 123回答 1
1回答
随时随地看视频慕课网APP
我要回答