小编bev*_*qua的帖子

使用Moq和TDD,从哪里开始?

我有一个服务器应用程序,我想知道如果我想开始实现TDD和使用Moq我应该从哪里开始.

我能读到哪些关于这个主题的好书,哪些不太"面向网络"?

我对此事有疑问,例如:

我应该模拟我想要测试的每个对象,还是只有那些我无法实现的对象,比如文本编写者?

我的服务器需要进行大量的设置才能真正做我想要测试的任何事情,我应该把它塞进一个[TestInitialize]函数中吗?

如果我想测试更深入的功能,我应该如何链接我的测试?

c# tdd unit-testing moq

10
推荐指数
3
解决办法
5079
查看次数

为什么在C#中没有System.DateTime的"约会"速记?

int,long,ushort,uint,short,等.

为什么没有一个简短的手System.DateTime

.net c#

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

如何在ASP.NET MVC中保持控制器小?

我有一个设计精良的架构,控制器访问服务,这些服务访问与数据库通信的存储库.

因此,控制器中的逻辑保持在最低限度,但我仍然有非常微妙的代码片段来执行某些任务

  • 验证模型
  • 安排动作方法参数
  • 使用这些参数调用某些服务,如果模型现在无效,则可以验证结果并返回视图
  • 最后从服务的结果中生成一个模型,然后返回.

一些较长的情况根据服务返回的"状态"执行不同的操作.

这里有几个例子:

[HttpPost]
[AjaxOnly]
[Authorize]
public JsonResult Preview(string input)
{
    LinkResult parsed = linkService.ParseUserInput(input);
    if (parsed.Result == LinkParseResult.Used)
    {
        long? postId = parsed.Link.PostId;
        if (postId.HasValue)
        {
            Post post = postService.GetById(postId.Value, false);
            return Json(new
            {
                faulted = "used",
                link = DetailsRoute(post),
                id = postId
            });
        }
        else
        {
            return Json(new { faulted = "invalid" });
        }
    }
    else if (parsed.Result == LinkParseResult.Invalid)
    {
        return Json(new { faulted = "invalid" });
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

c# refactoring controller asp.net-mvc-3

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

C#无法创建实例,因为Type.ContainsGenericParameters为true

我正在尝试反序列化,Generic<T> where T : struct但是当我调用时,ctor.Invoke(args); 我得到异常"无法创建实例,因为Type.ContainsGenericParameters为true".

如何传递我想要的泛型类型?

.net c# generics reflection

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

如何有条件的正则表达式

我想要一个正则表达式,如果它.在字符串中有3个实例,那么它会做一件事,如果它有超过3个实例则需要其他东西.

例如

aaa.bbb.ccc.ddd // one part of the regex

aaa.bbb.ccc.ddd.eee // the second part of the regex
Run Code Online (Sandbox Code Playgroud)

我怎么在这两种实现这一点js还是c#

就像是

?(\.){4} then THIS else THAT
Run Code Online (Sandbox Code Playgroud)

在正则表达式内......

更新

好吧基本上我正在做的是这样的:

我希望将任何给定的切换System.Uri到扩展方法中的另一个子域.

我遇到的问题是我的域通常是形式http://subdomain.domain.TLD.TLD/more/url,但有时,它可能只是http://domain.TLD.TLD/more/url(它只是指向www)

所以这就是我提出的:

public static class UriExtensions
{
    private const string TopLevelDomainRegex = @"(\.[^\.]{2,3}|\.[^\.]{2,3}\.[^\.]{2,3})$";
    private const string UnspecifiedSubdomainRegex = @"^((http[s]?|ftp):\/\/)(()([^:\/\s]+))(:([^\/]*))?((?:\/)?|(?:\/)(((\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?))?$";
    private const string SpecifiedSubdomainRegex = @"^((http[s]?|ftp):\/\/)(([^.:\/\s]*)[\.]([^:\/\s]+))(:([^\/]*))?((?:\/)?|(?:\/)(((\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?))?$";

    public static string AbsolutePathToSubdomain(this Uri uri, string subdomain)
    {
        subdomain = subdomain == …
Run Code Online (Sandbox Code Playgroud)

c# regex

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

Node.JS中的HTTP DELETE谓词

在向node.js应用程序发出DELETE请求之前,是否需要设置任何配置?

我可以做GET,POSTPUT请求,但DELETE请求将无法正常工作.

DELETE http://localhost:8081/api/1.0/entryundefined来自路由记录器的收益,我用express来注册路由.但看起来我甚至无法解析url /动词.

这就是我调用它的方式:

rows.find('a.remove').on('click', function(){
    $.ajax({
        url: '/api/1.0/entry',
        type: 'DELETE'
    }).done(function(res){
        var row = $(this).parentsUntil('tbody');
        row.slideUp();
    });
});
Run Code Online (Sandbox Code Playgroud)

样本日志

GET / 200 18ms  
GET /author/entry 200 10ms  
GET /api/1.0/entry 200 2ms  
GET /api/1.0/entry 200 1ms  
GET /api/1.0/entry 200 1ms  
undefined
Run Code Online (Sandbox Code Playgroud)

javascript rest http node.js express

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

解决Ember和Dragula对DOM的看法

我正在使用Dragula在Ember中创建一组拖放组件.我将项目列表传递给包含多个可丢弃存储桶的父包装器.最初过滤此项目列表,以便它们在正确的存储桶中呈现正确的项目.然后将Dragula连接起来,以便可以拖放项目.当发生drop事件时,我尝试更新底层的Ember对象.这可能导致重新应用过滤器并进行一些渲染.问题是DOM已被Dragula操纵,并且与Ember认为它应该是不同的并且DOM节点刚刚消失.

当他们认为自己拥有DOM及其当前代表时,我怎么能让Ember和Dragula玩得很好?我已经尝试取消了draggle drop事件,然后让Ember设置了有限的成功值.

dnd-wrapper/template.hbs

{{yield (action "register")}}
Run Code Online (Sandbox Code Playgroud)

dnd-wrapper/component.js

export default Ember.Component.extend({
  drake: null,
  buckets: [],
  items: [],
    initDragula: Ember.on('willInsertElement', function() {
    this.set('drake', window.dragula());
  }),
  setupDragulaEvents: Ember.on('didInsertElement', function() {
    this.get('drake').on('drop', (itemEl, destinationEl, sourceEl) => {
      let dest = this.buckets.findBy('element', destinationEl);
      let source = this.buckets.findBy('element', sourceEl);
      let item = this.items.findBy('element', itemEl);

      item.component.set('item.bucket', dest.component.get('value'));
    });
  }),
  actions: {
    register(type, obj) {
      if(type === 'bucket') {
        this.get('drake').containers.push(obj.element);
        this.buckets.pushObject(obj);
      }
      else {
        this.items.pushObject(obj);
      }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

dnd-bucket/template.hbs

<h2>bucket {{value}}</h2>
<ul>
    {{#each filteredItems as |item|}} …
Run Code Online (Sandbox Code Playgroud)

jquery dom ember.js dragula

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

动态添加资源字符串

是否可以动态地将资源字符串动态添加到资源文件中?如果努力涉及多种语言怎么办?

c#

8
推荐指数
1
解决办法
8714
查看次数

jQuery .live()如何工作?

我在考虑表现

.click() VS .live("click")

这让我想知道.live是如何运作的.

它是否监视DOM更改以及何时检测到DOM中的更改它只是附加事件然后,它是否使用某种计时器(我不这么认为,但如果这样做非常重要,计时器会让我感到难过人)

jquery

8
推荐指数
2
解决办法
2242
查看次数

在图书馆项目中获取razor intellisense?

我有一个商业项目,我将根据用剃刀制作的模板创建电子邮件.我怎样才能获得剃刀智能感知?它是否像包含一些组件一样简单,或者我需要做一些更多反驳的事情?

这是为了使用RazorEngine库.

c# intellisense razor

8
推荐指数
1
解决办法
2414
查看次数