Próbuję napisać test klasy dla koszyka. Oto co mam:Laravel Unit Testing Dependency Injection
ShoppingCartTest.php
class ShoppingCartTest extends TestCase {
use DatabaseTransactions;
protected $shoppingCart;
public function __construct() {
$this->shoppingCart = resolve('App\Classes\Billing\ShoppingCart');
}
/** @test */
public function a_product_can_be_added_to_and_retrieved_from_the_shopping_cart() {
// just a placeholder at the moment
$this->assertTrue(true);
}
}
Jednak, gdy biegnę PHPUnit, wydaje się laravel nie jest w stanie rozwiązać moje ShoppingCartClass.
Tutaj jest błąd:
Fatal error: Uncaught exception 'Illuminate\Contracts\Container\BindingResolutionException'
with message 'Unresolvable dependency resolving
[Parameter #0 [ <required> $app ]] in class Illuminate\Support\Manager'
in C:\Development Server\EasyPHP-Devserver-16.1\eds-www\nrponline\vendor\laravel\framework\src\Illuminate\Container\Container.php:850
Mam klasa ShoppingCart być rozwiązany w szereg różnych kontrolerów dobrze.
Dlaczego Laravel nie może rozwiązać problemu podczas moich testów?
Ja także odwołałem do this post, ale wciąż nie miałem szczęścia.
Czy mógłbyś opublikować konstruktor dla 'App \ Classes \ Billing \ ShoppingCart'? – edcs
@edcs Pewna rzecz. Oto klasa. http://pastebin.com/bPRpmtnH –
Fajnie - dzięki! Możesz spróbować użyć '$ this-> app-> make ('App \ Classes \ Billing \ ShoppingCart');' ponieważ wszystkie testy Laravel mają instancję aplikacji dostępną dla nich jako własność. – edcs