我想知道是否有人可以为所有可能的类型(或指定的子类型)伪造泛型方法调用?
例如,假设我们有这个美妙的IBar界面.
public interface IBar
{
int Foo<T>();
}
Run Code Online (Sandbox Code Playgroud)
我可以伪造一个依赖于这个IBar的Foo调用,而不必指定T是任何特定类型吗?
[TestFixture]
public class BarTests
{
[Test]
public void BarFooDoesStuff()
{
var expected = 9999999;
var fakeBar = A.Fake<IBar>();
A.CallTo(() => fakeBar.Foo<T>()).Returns(expected);
var response = fakeBar.Foo<bool>();
Assert.AreEqual(expected, response);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
在我对Ubuntu 10.10 Maverick Meerkat进行新升级时,我无法识别我的HTC Desire.
adb设备显示
List of devices attached
???????????? no permissions
Run Code Online (Sandbox Code Playgroud)
现在,有很多关于在/etc/udev/rules.d/下更改规则文件的教程.但是,我找不到10.10的具体内容.
任何人都可以告诉我规则文件名和内容是否与链接文本中描述的相同,或者我们是否正在查看此新版本的一些新设置?
非常感谢
我在这里有一个混合使用webform和mvc的应用程序.我指定路由如下
routes.Add("AspxRoute", new Route("Upload/New", new WebFormRouteHandler<Page>("~/Uploads.aspx")));
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
因此,"上传/新建"的虚拟路径实际上映射到aspx webform页面.
但我的问题是Html.ActionLink("测试","控制器","动作")现在呈现
/上传/新?控制器=控制器和行动=行动
看了MVC源代码后,我理解这是因为ActionLink调用RouteCollection.GetVirtualPath(requestContext,routeName,mergedRouteValues),其中routeName为空.并且不知何故,这默认使用AspxRoute路由来构建url.我试图在"AspxRoute"之前添加另一条路线,但它似乎总是默认为非mvc路由处理器.
当routeName为null时,RouteCollection.GetVirtualPath的行为如何?为什么它对我的情况表现如此?
如何构建正确的URL?我是否需要编写新的Htmlhelper扩展?
干杯
我正在尝试为单元测试创建一个模拟HttpContextBase.
var fakePrinciple = new GenericPrincipal(
new GenericIdentity(userId),
rolesList.ToArray());
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(t => t.User).Returns(fakePrinciple);
HttpContextBase mockedContext = mockHttpContext.Object;
Run Code Online (Sandbox Code Playgroud)
单元测试在最后一个语句中失败
抛出异常:System.ArgumentException:无法获取StrongNameKeyPair的公钥.
System.Reflection.StrongNameKeyPair.nGetPublicKey(Boolean exported,Byte [] array,String container)System.Reflection.StrongNameKeyPair.get_PublicKey()System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name,AssemblyBuilderAccess access,String dir,Evidence evidence,PermissionSet requiredPermissions,PermissionSet optionalPermissions,PermissionSet rejectedPermissions,StackCrawlMark&stackMark,IEnumerable`1 unsafeAssemblyAttributes)System.AppDomain.DefineDynamicAssembly(AssemblyName name,AssemblyBuilderAccess access)Castle.DynamicProxy.ModuleScope.CreateModule(Boolean signStrongName)Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongName()Castle.DynamicProxy.ModuleScope .ObtainDynamicModule(Boolean isStrongNamed)Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder(ModuleScope modulescope,String name,Type(blah blah snip)
我用谷歌搜索,这里的建议似乎不起作用(更改RSA文件夹安全设置等)http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158
我是正确地认为,因为HttpContextBase是的一部分System.Web.Abstraction,这是一个签名的程序集.Moq实际上会尝试签署动态组件,但失败了吗?
adb ×1
android ×1
asp.net-mvc ×1
c# ×1
exception ×1
fakeiteasy ×1
generics ×1
httpcontext ×1
moq ×1
strongname ×1
ubuntu ×1
ubuntu-10.10 ×1
webforms ×1