मैं वर्तमान में एक लार्वा पैकेज तैयार कर रहा हूं जो में Macros के माध्यम से एक नई विधि इंजेक्ट करता है। जिस विधि को मैं इंजेक्शन कर रहा हूं उसे पूरा कर लिया गया है और अच्छी तरह से काम करने की उम्मीद है, लेकिन मैं इसे जारी करने से पहले इसका परीक्षण करना चाहता हूं।लार्वेल 5 पैकेज में किसी परीक्षण में हेडर स्वीकार करने का अनुकरण कैसे करें?
मेरा परीक्षण मुझे यह देखने के लिए अनुरोध है कि परीक्षण पास हो रहा है या नहीं, मेरे अनुरोध के लिए मुझे अनुरोध Accept
शीर्षलेख बदलने की आवश्यकता है। इसलिए मैं अनुरोध को दिखाने का निम्नलिखित किया है:
// package/tests/TestCase.php
namespace Vendor\Package;
use Illuminate\Http\Request;
use Orchestra\Testbench\TestCase as Orchestra;
abstract class TestCase extends Orchestra
{
/**
* Holds the request
* @var Illuminate\Http\Request
*/
protected $request;
/**
* Setup the test
*/
public function setUp()
{
parent::setUp();
$this->request = Request::capture();
$this->request->headers->set('Accept', 'application/x-yaml');
}
}
फिर अपने परीक्षण में मैं विधि मैं $this->request->wantsYaml()
साथ Request
में इंजेक्शन लगाने कर रहा हूँ उपयोग करें और यह हमेशा गलत लौटा रहा है के बाद से Accept
हैडर application/x-yaml
के लिए सेट नहीं हो रही है।
class RequestTest extends TestCase
{
/** @test */
public function it_should_return_a_bool_if_page_wants_yaml_or_not()
{
dump($this->request->wantsYaml()); // Return false
$this->assertTrue($this->request->wantsYaml()); // It fails!
}
}
लैरवेल पैकेज विकास में परीक्षण में हेडर को अनुकरण करने के लिए मैं कैसे जा सकता हूं?
संपादित
यह मेरा YamlRequest
वर्ग
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class YamlRequest extends Request
{
/**
* Acceptable content type for YAML.
* @var array
*/
protected $contentTypeData = ['/x-yaml', '+x-yaml'];
/**
* Determine if the current request is asking for YAML in return.
*
* @return bool
*/
public function wantsYaml()
{
$acceptable = $this->getAcceptableContentTypes();
// If I dd($acceptable), it comes out as empty during tests!
return isset($acceptable[0]) && Str::contains($acceptable[0], $this->contentTypeData);
}
}
तो मैं सचमुच क्रम में स्वीकार करें देखने के लिए अनुकरण करने के लिए है, तो मेरी wantsYaml
विधि अपेक्षानुसार कार्य कर रही है।
कृपया अपनी कक्षा या कक्षा का हिस्सा शामिल करें जहां आप इसे करना चाहते हैं और आप इस कक्षा –
में अनुरोध ऑब्जेक्ट को पास/बनाते हैं, 'उपयोग' कथन जोड़ा गया। – Aborted
@ मार्सीनबाबियाक किस वर्ग का आपका मतलब है? मैं केवल अपने परीक्षणों के लिए सामग्री-प्रकार शीर्षलेख अनुकरण करना चाहता हूं। मेरा कोड काम करता है (मुझे विश्वास है), लेकिन इसे साबित करने के लिए मुझे अपने परीक्षणों में इस अनुकरण की आवश्यकता है। – Aborted