@ali.bayat
@mhyeganeh
@sina.it91
من به صورت فساد کد را نوشتم چون برای تستبلیتی راحت باشه اما ارور میده.
الان من یک تست نوشتم اما الان ارور میده
public function testsimple1()
{
$id=1;
userrepositoryfacade::shouldReceive('validedit')->once()->with($id)->andReturn(
$user=User::where('id',$id)->get()); }
ارور
Tests\\Unit\\ExampleTest::testsimple1
Mockery\\Exception\\InvalidCountException: Method validedit(1) from Mockery0Apprepositoryuserrepositoryvalidation should be called
exactly 1 times but called 0 times.
@sina.it91
@ali.bayat
@mhyeganeh
@Rp76
@arash.taghavi69
@saman1111
@pwyazyzzadhbna
من به صورت ریپازیتوری پترن پروژه رو نوشتم الان میخوام براش تست بنویسم یک نمونه نوشتم اما این ارور رو میده اگه میشه راهنمایی کنید و یک serviceprovider هم ساختم و فایل رو فراخوانی کردم.
public function testsimple1()
{
$id=1;
userrepositoryfacade::shouldReceive('validedit')->once()->with($id)->andReturn(
$user=User::where('id',$id)->get());
}
و اروری که نمایش میده اینه
Tests\\Unit\\ExampleTest::testsimple1
Mockery\\Exception\\InvalidCountException: Method validedit(1) from Mockery0Apprepositoryuserrepositoryvalidation should be called
exactly 1 times but called 0 times.
@sina.it91
@mhyeganeh
@Rp76
@ali.bayat
@hesammousavi
کسی چیزی در مورد این ارور در تست نویسی لاراول نمیدونه
1) Tests\Unit\ExampleTest::test_simple1
Mockery\Exception\InvalidCountException: Method index(1) from Mockery_1_App_repository_userrepository_validation should be called
exactly 1 times but called 0 times.
/home/netwons/project/vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php:38
/home/netwons/project/vendor/mockery/mockery/library/Mockery/Expectation.php:308
/home/netwons/project/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php:119
/home/netwons/project/vendor/mockery/mockery/library/Mockery/Container.php:299
/home/netwons/project/vendor/mockery/mockery/library/Mockery/Container.php:284
/home/netwons/project/vendor/mockery/mockery/library/Mockery.php:204
/home/netwons/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:174
ERRORS!
Tests: 18, Assertions: 25, Errors: 1.
وقتی از shouldReceive('validedit') استفاده میکنی یعنی داری استفاده از یه متد رو mock میکنی
پس متد validateit باید در طول تست صدا زده بشه، که نمیشه
متن خطا هم داره همن رو میگه
@ali.bayat
مگه با shouldReceive متدد رو صدا نمیزنن؟
من والا نمیدونم میشه با مثال بگید که چیکار کنم
وقتی که تست مینویسیم، بعضی موارد رو نمیتونیم کاملا اجرا کنیم برای همین از Mocking استفاده میکنیم
مثلا بجای ارسال پیام کوتاه واقعی و یا ایمیل ، اون لاجیک رو mock میکنیم
در مورد Unit Testing و Mocking کمی بیشتر مطالعه کن، تا موضوع کاملا جا بیفته
@ali.bayat
الان کد من اینه که ریپازیتوری و فساد و تست و کنترلر رو براتون قرار دادم من چه چیزی رو باید تغییر بدم
@ali.bayat
@sina.it91
@mhyeganeh
@Rp76
@milad
@hesammousavi
میشه در مورد این قضیه راهنمایی کنید من هنوز به نتیجه نرسیدم
این هم مسیر پروژه در گیت لب
من در پوشه test/unit/exampletest.php تست مورد نظر رو نوشتم میشه چک کنید مشکلش چیه
https://gitlab.com/netwons/project-dic.git
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟