मैं एक विस्तार विधि System.Security.Principal.IIdentity
पर HasContentPermission
बुलाया बनाया:मेरी विस्तार विधि मेरी परीक्षा कक्षा में क्यों दिखाई नहीं दे रही है?
namespace System.Security.Principal
{
public static class IdentityExtensions
{
public static bool HasContentPermission
(this IIdentity identity, int contentID)
{
// I do stuff here
return result;
}
}
}
और मैं इसे इस तरह कहते हैं:
bool hasPermission = User.Identity.HasPermission(contentID);
वर्क्स एक आकर्षण की तरह। अब मैं इकाई का परीक्षण करना चाहता हूं।
using System.Security.Principal;
namespace MyUnitTests
{
[TestMethod]
public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
{
IIdentity identity;
bool result = identity.HasContentPermission(...
लेकिन HasContentPermission
IntelliSense नहीं करेंगे: कि ऐसा करने के लिए, सभी मैं वास्तव में क्या करने की जरूरत विस्तार विधि सीधे कॉल, तो है। मैंने एक स्टब क्लास बनाने की कोशिश की जो IIdentity
से विरासत में है, लेकिन यह भी काम नहीं करता है। क्यूं कर?
या क्या मैं इस गलत तरीके से जा रहा हूं?
पहले कोड ब्लॉक में आपका वाक्यविन्यास गलत है - आप नामस्थान स्कोप में कोई विधि परिभाषित नहीं कर सकते ... क्या आप अपना वास्तविक कोड डाल सकते हैं? –
क्या आप सुनिश्चित हैं कि आपकी टेस्ट प्रोजेक्ट असेंबली का संदर्भ दे रही है कि आपका विस्तार विधि (केवल नामस्थान की बजाय) में रहता है? –
@Reed: मैंने लापता कोड जोड़ने के लिए प्रश्न संपादित किया। –