小编Dav*_*lan的帖子

JavaScript咖喱:有哪些实际应用?

我不认为我已经讨好了.我理解它的作用,以及如何做到这一点.我想不出我会用它的情况.

你在JavaScript中使用currying(或者使用它的主要库在哪里)?欢迎DOM操作或一般应用程序开发示例.

其中一个答案提到了动画.函数如slideUp,fadeIn将元素作为参数,通常是一个curried函数,返回高阶函数,内置默认的"动画函数".为什么这比仅使用某些默认值更高的函数更好?

使用它有什么缺点吗?

根据要求,这里有一些关于JavaScript currying的好资源:

我会在评论中添加更多内容.


因此,根据答案,currying和部分应用一般是便利技术.

如果您经常通过使用相同配置调用高级函数来"精炼"高级函数,则可以使用更高级别的函数来设置(或使用Resig的部分)来创建简单,简洁的帮助器方法.

javascript function currying partial-application

171
推荐指数
5
解决办法
4万
查看次数

使用ruby splat运算符在哪里合法?

Splats很酷.它们不只是用于爆炸阵列,尽管这很有趣.它们还可以转换为数组并展平数组(请参阅http://github.com/mischa/splat/tree/master以获取他们所做的详尽列表.)

看起来无法对splat执行其他操作,但在1.8.6/1.9中,以下代码抛出"意外的tSTAR":

foo = bar || *zap #=> unexpected tSTAR

虽然这有效:

foo = *zap || bar #=> works, but of limited value

splat在哪里可以出现在表达式中?

ruby arrays syntax operator-precedence splat

18
推荐指数
2
解决办法
9441
查看次数

如何模拟外部服务改进单元测试?

我正在连接一个简单的,如果是特殊的外部服务.

我相信我的单元测试不应该依赖于外部服务的可用性或实现,所以我打算嘲笑它.

我需要模拟接受并返回真实的消息和响应 - 否则我的测试将不代表真实的事态.例如,它必须抛出正确的错误 - 并且至少有7种不同的失败方式(在你和我之间,它不是一个设计得很好的外部服务).因此,至少我必须有一个消息/响应对的散列.

因此,嘲讽不是减少偶然性,而是将其重新引入其他地方.事实上,正如俗话所说,现在我遇到了两个问题:我必须确定我的哈希中的内容是对外部服务行为的公平表示.但肯定的是,响应对象X给消息m的规范来源是X本身.其他任何东西都有风险和凌乱.

我转错了吗?如何消除这种明显的圆形度?

编辑我已根据司法的有用评论澄清了我认为问题的原因.

testing mocking

6
推荐指数
1
解决办法
2844
查看次数

5
推荐指数
1
解决办法
1868
查看次数

如何将Globalize翻译装置加载到测试模型中?

gobalize在Rails 4.1.12中使用gem 4.0.3.

我有一个Post模型,我运行Post.create_translation_table!提供的迁移globalize来设置一个post_translations表.

现在我想自动加载夹具文件的翻译.Fixtures支持关联的标签引用,所以我有这个:

# spec/fixtures/posts.yml

my_first_post:
  author: dave

# spec/fixtures/post_translations.yml

my_first_post_translation:
  locale: en    
  title: My first post
  content: What a time to be alive!
  post: my_first_post

# spec/models/post_spec

require 'rails_helper'

RSpec.describe Post, type: :model do
  fixtures('post/translations', :posts, :authors)

  subject(:post) { posts(:my_first_post) }

  it "has an author" do
    expect(post.author).to eq(authors(:dave))
  end

  it "has a title" do
    binding.pry
    expect(post.title).to be_present
  end
end
Run Code Online (Sandbox Code Playgroud)

但运行RSpec会引发以下错误:

 Failure/Error: Unable to find matching …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails fixtures ruby-on-rails-4 globalize

4
推荐指数
1
解决办法
1341
查看次数