小编Stu*_*ser的帖子

单元测试Web App时如何模拟应用程序路径

我正在测试MVC HTML帮助程序中的代码,在尝试获取应用程序路径时会抛出错误:

//appropriate code that uses System.IO.Path to get directory that results in:
string path = "~\\Views\\directory\\subdirectory\\fileName.cshtml";
htmlHelper.Partial(path, model, viewData); //exception thrown here
Run Code Online (Sandbox Code Playgroud)

引发的异常是

System.Web.HttpException:应用程序相对虚拟路径'〜/ Views/directory/subdirectory/fileName.cshtml'不能成为绝对路径,因为应用程序的路径未知.

遵循如何在测试HtmlHelper时解决图像路径问题的建议
我假装(使用Moq):

  • Request.Url 返回一个字符串
  • Request.RawUrl 返回一个字符串
  • Request.ApplicationPath 返回一个字符串
  • Request.ServerVariables 返回null NameValueCollection
  • Response.ApplyAppPathModifier(string virtualPath) 返回一个字符串

还需要什么才能允许此代码在单元测试运行的上下文中运行?
或者
我应该采取什么其他方法来渲染动态构建的字符串上的部分视图?

c# asp.net asp.net-mvc unit-testing mocking

11
推荐指数
1
解决办法
8674
查看次数

在Java中将比特打包成byte []并将其读回来的最有效方法是什么?

我目前使用这两个函数来打包和读取字节数组中的位.想知道是否有人有更好的想法或更快的方法吗?

通过更多优化编辑程序并提出一些计算.目前100mil的Put and Get大约需要12秒而不是16秒.

如果有人正在使用当前代码,请确保传入Put的值是正数,因为它期望无符号数字下降.如果有兴趣,我可以提出签名和未签名的版本.

class BitData
{
    static void Put(byte Data[], final int BitOffset, int NumBits, final int Value)
    {
        final long valLong=(Value&((1L<<NumBits)-1L));
        int posByte=BitOffset>>3;
        int posBit=BitOffset&7;
        int valByte;
        int ModifyBits;

        long lValue;
        int LeftShift;
        ModifyBits=8-posBit;
        if(NumBits<ModifyBits) ModifyBits=NumBits;
        LeftShift=(8-posBit-ModifyBits);
        while(true)
        {
            valByte = Data[posByte];
            if(ModifyBits==8)
            {
                lValue=valLong<<(32-NumBits)>>(24);
                Data[posByte]=(byte)lValue;
            }
            else
            {   
                lValue=valLong<<(32-NumBits)>>(32-ModifyBits)<<LeftShift;
                Data[posByte]=(byte)((valByte & ~(((1<<ModifyBits)-1) << LeftShift)) | lValue);
            }
            NumBits-=ModifyBits;
            if(NumBits==0) break;
            posByte++;          
            ModifyBits=8;
            if(NumBits<ModifyBits) 
            {
                ModifyBits=NumBits;
                LeftShift=(8-ModifyBits);
            }
        }
    }

    static int GetInt(byte Data[], final int BitOffset, …
Run Code Online (Sandbox Code Playgroud)

java bit-manipulation packing bit

11
推荐指数
1
解决办法
4637
查看次数

MVC控制器和视图应该具有1对1的关系吗?

我目前正在使用asp.NET MVC来构建网站的内容管理系统部分,并且有可能将我的所有视图重新创建为部分视图,因为它似乎打破了网站地图的工作方式.

例如,我的FAQAdminController有Views:Index,AddFAQ,EditFAQ,ConfirmDeleteFAQ,这些都必须成为部分视图.

我被告知每个控制器应该有一个视图,所有其他形式或操作以页面内容结尾显示应该作为部分视图实现.

我在发布之前已经检查过,没有文档,文章,维基或SO问题给我一个直接的答案,即每个控制器有多个视图是否打破了MVC模型.

严格来说,MVC Controller和View应该是1对1关系吗?

asp.net asp.net-mvc

10
推荐指数
2
解决办法
5933
查看次数

Automapper可以用在控制台应用程序中吗?

是否可以 在控制台应用程序中使用automapper

它的入门页面建议从应用程序启动时调用bootstrapper类,但是没有关于要添加和调用的类的更多详细信息Main().

如何在简单的控制台应用程序中使用它?

.net c# console-application automapper

10
推荐指数
2
解决办法
6116
查看次数

LINQ to Entities中的Enum.HasFlag?

我有一面旗帜,例如

[Flags]
public enum DaysOfTheWeek
{
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
}
Run Code Online (Sandbox Code Playgroud)

如果我想使用Linq基于包含特定标志的变量进行过滤,我可以尝试在lambda语句中使用Enum.HasFlag来过滤多个标志,例如

DaysOfWeek weekendFilter = DaysOfTheWeek.Saturday | DaysOfTheWeek.Sunday;
var weekends = allDays.Where(d => d.DayOfWeek.HasFlag(weekendFilter));
Run Code Online (Sandbox Code Playgroud)

这目前给出:

LINQ to Entities无法识别方法'Boolean HasFlag(System.Enum)'方法,并且此方法无法转换为存储表达式.

c# linq lambda linq-to-entities c#-4.0

10
推荐指数
2
解决办法
4798
查看次数

如何在angular2组件中导入npm包?

我正在努力学习ng2的绳索,依赖注射系统正在扼杀我.

我正在使用ng快速入门:https: //github.com/angular/quickstart/blob/master/README.md

我正在尝试将此软件包导入应用程序:https://www.npmjs.com/package/arpad.我通过npm update安装了包,我的package.json依赖项如下所示:

"dependencies": {
  "angular2": "2.0.0-beta.9",
  "systemjs": "0.19.24",
  "es6-promise": "^3.0.2",
  "es6-shim": "^0.35.0",
  "reflect-metadata": "0.1.2",
  "rxjs": "5.0.0-beta.2",
  "zone.js": "0.5.15",
  "arpad":"^0.1.2" <----- the package i'm trying to import
}
Run Code Online (Sandbox Code Playgroud)

这是包导出其代码的方式:

module.exports = ELO;
Run Code Online (Sandbox Code Playgroud)

我有一个组件导入模块,如下所示:

import {ELO} from 'node_modules/arpad/index.js';
Run Code Online (Sandbox Code Playgroud)

这是systemJS在应用程序的index.html中的配置方式:

  <script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map:{'arpad':'node_modules/arpad'} <---- here 
  });
  System.import('node_modules/arpad/index.js'); <--- and here for good measure
  System.import('app/main')
        .then(null, console.error.bind(console));
</script>
Run Code Online (Sandbox Code Playgroud)

现在,它看起来很像我在黑暗中拍摄,这正是应用程序控制台中的错误消息让我做的事情.当我尝试在组件中使用这样的模块时:

public elo = ELO;
constructor(){
    this.score …
Run Code Online (Sandbox Code Playgroud)

browserify systemjs webpack angular

10
推荐指数
1
解决办法
1万
查看次数

如何强制.net WCF客户端在basicHttpBinding中使用NTLM?

现在我的安全节点定义如下:

<security mode="TransportCredentialOnly">
    <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

HTTP请求未经授权使用客户端身份验证方案"Negotiate".从服务器收到的身份验证标头是"NTLM".

c# wcf ntlm wcf-client

9
推荐指数
1
解决办法
1万
查看次数

如何在MVC3中调用IValidatableObject Validate(ValdationContext)或包含在ModelUpdate中?

来自David Hayden的博客文章:

IValidatableObject并不总是触发

这里有一个问题可能并不明显.如果存在属性级错误,ASP.NET MVC 3中的IValidatableObject将不会触发.正如我所提到的,ASP.NET MVC 3属性验证发生在对象验证之前.如果存在属性错误,ASP.NET MVC 3的设计将不会触发IValidatableObject,以免返回误报(感谢Microsoft的Brad Wilson今天确认这一点).

为了实用性,我想在对象的一个​​集合中获取所有验证消息.

有没有一种简单的方法可以在不破解MVC源的情况下覆盖此默认行为?
我目前正在尝试填充ValidationContext控制器中的对象并调用以下object.Validate()的else块:

if (TryModelUpdate(model))
Run Code Online (Sandbox Code Playgroud)

PS道歉,如果这是重复,我没有在SO上发现任何类似的东西.

validation asp.net-mvc data-annotations asp.net-mvc-3

9
推荐指数
0
解决办法
7116
查看次数

是否有一个"更多"命令可以在Windows中的Git shell中使用?

git shell有一些有用的命令,它们不是windows常用cmd(ls,git grep)的一部分.

有没有像*nix这样的命令

more filename.ext
Run Code Online (Sandbox Code Playgroud)

在git shell中可用吗?

git command-line-interface git-shell

9
推荐指数
1
解决办法
5048
查看次数

gridster自动高度和宽度根据内容

我正在使用Gridster的'add_widget'方法添加网格.窗口小部件已成功添加,但无序列表(ul)宽度小于其内容.

任何人都可以告诉我如何根据内容调整Gridster中的高度和宽度.

javascript jquery gridview gridster

9
推荐指数
1
解决办法
2852
查看次数