小编Dav*_*uth的帖子

中介模式与发布/订阅

有人能指出两者之间的主要区别吗?

似乎至少在概念上,这两者是非常密切相关的.如果我冒险猜测,我会说发布/订阅方法是中介模式的一个子集(因为中介不一定需要以发布/订阅方式使用,但后者似乎需要一种中介宾语).那附近有什么吗?

c++ oop design-patterns mediator publish-subscribe

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

如何在TFS Build Explorer中显示TeamCity构建?

我们使用TFS 2010进行源代码控制和项目管理,使用TeamCity 6.0执行构建和构建报告(CI和测试人员的日常部署).在TeamCity中设置TFS源标签以匹配构建号非常简单,但我找不到将其链接回TFS Build Explorer的方法.

我们希望链接这些能够通过TFS为每日测试人员部署构建将错误分配给特定构建.

teamcity tfs tfsbuild tfs2010

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

是否可以从TeamCity构建中获取原始构建日志?

是否可以从TeamCity构建中获取原始构建日志?我编写了一个自定义测试运行器,它作为命令行构建步骤运行,并通过将##teamcity...行打印到stdout来报告测试结果.TeamCity的构建日志似乎在识别它们时将其剥离.我想看看原始输出来帮助调试我的测试运行器.

更新: 显然这是不可能的.neverov(我假设JetBrains的Dimitry Neverov?)解释了这个并给出了一个解决方法,所以我接受了他的答案.

teamcity

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

如何在RSpec中测试信号处理,特别是处理SIGTERM?

Heroku可能出于各种原因向您的应用程序发送SIGTERM,因此我创建了一个处理程序来处理一些清理,以防万一.一些谷歌搜索没有得到任何关于如何在RSpec中测试这个的答案或例子.这是基本代码:

Signal.trap('TERM') do  
    cleanup  
end

def cleanup
    puts "doing some cleanup stuff"
    ...
    exit
end
Run Code Online (Sandbox Code Playgroud)

测试程序收到SIGTERM时调用此清理方法的最佳方法是什么?

ruby unit-testing signals rspec sigterm

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

依赖性反转和分离的接口模式(或一般的接口代码)之间有什么区别?

我无法弄清楚依赖性反转原理(SOLID原则之一)与通用"代码到接口"或分离接口模式之间的区别.他们都提倡创建一个抽象层来分离较低级别和较高级别的模块.

DI原则设想创建在更高层和更低层模块之间交互的接口,但也坚持接口必须是更高层包的一部分.
为什么这应该是更高层次而不是更低层次的一部分?它是暴露其行为的较低级别,所以解耦接口不应该是较低级别的一部分吗?如果有多个更高级别的模块取决于相同的较低级别怎么办?

或者,
为什么不制作一个单独的包来放置所有接口,然后可以被更高级别和更低级别使用?(这是分离接口模式设想的.)

我的困境是,我无法弄清楚它们的相对用途和好处.

请不要引用Derek Greer或Robert Martin的文章.我读过这些文章,但仍然存在混淆.

java interface dependency-inversion

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

如何在Factory Girl或Minifacture中使用随机唯一数据制作Ruby测试工厂?

我正在使用典型工厂测试典型的Rails模型:

# My model uses a 3-letter uppercase airport code,
# such as "ATL" for Atlanta, "BOS" for Boston, etc.

class Airport < ActiveRecord::Base
  validates :code, uniqueness: true

Factory.define :airport do |f|
  f.code { random_airport_code }  # Get a 3-letter uppercase code
Run Code Online (Sandbox Code Playgroud)

我正在添加更多测试并开始在机场代码中看到碰撞:例如工厂创建一个代码为"XYZ"的机场,然后工厂的后续调用尝试创建具有相同代码的机场.

序列是解决这个问题的一种方法.例如,使用Factory Girl序列,有序列表或预先计算的枚举,一些类似的方式来维护下一个可用代码的状态.

我的问题是:什么是非序列方法来解决这个问题?我想使用随机数据,而不是序列.

我正在尝试的一些想法因为它们是务实的 - 对这些的任何见解都非常感激.

使用乐观锁定的示例构思

while 
  airport = Factory.build :airport
  airport.save && return airport
end
Run Code Online (Sandbox Code Playgroud)

优点:实践快速,因为碰撞很少见; 当地的州.

缺点:笨拙的语法; 非本地工厂; 由于碰撞以外的原因,保存可能会失败.

使用事务的示例构思

Airport.transaction 
  while
    x = random_airport_code
    if Airport.exists?(code: x)
      next
    else
      Factory :airport, …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails minitest factory-bot

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

Capybara的have_selector有哪些选择?

我在RSpec中遇到了这个错误.是否有任何文档have_selector可以解释选项哈希中的每个键以及它究竟是做什么的?

invalid keys :content, should be one of :text, :visible, :between, :count, :maximum, :minimum, :exact, :match, :wait
Run Code Online (Sandbox Code Playgroud)

ruby rspec capybara

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

assign在rspec-rails中做了什么?

我正在处理我没有写过的代码,并试图了解RSpec的工作原理.

let(:course) { create :new_course }
before { assign :course, course }
Run Code Online (Sandbox Code Playgroud)

我知道这let会创建一个memoized变量.assign这个例子做了什么?

ruby unit-testing rspec ruby-on-rails rspec-rails

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

什么是"高级模块"和"低级模块"(在依赖性倒置原则的背景下)?

我正在阅读维基百科对依赖性倒置原则的定义,它使用两个术语高级模块低级模块,我无法弄清楚.

他们是什么,依赖倒置原则与他们有什么关系

language-agnostic dependencies module inversion-of-control dependency-inversion

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

Recyclerview,我无法通过getChildAt(位置)获取项目视图.空对象引用

我在导航抽屉里面使用了recyclerView,我正在使用这个库Twoway-view来获得点击和选择支持.

它工作得很好,我可以在每个位置的OnClick方法中更改文本和图标的颜色而没有问题:

itemClickSupport.setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
        @Override
        public void onItemClick(RecyclerView parent, View view, int position, long id) {
            TypedValue typedValue = new TypedValue();
            MainActivity.this.getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
            final int color = typedValue.data;

            //TODO Icon and text colors

            for (int i = 0; i < drawerTitles.length; i++){
                if (i == position){
                    ImageView imageViewDrawerIcon = (ImageView) recyclerViewDrawer.getChildAt(i).findViewById(R.id.imageViewDrawerIcon);
                    TextView textViewDrawerTitle = (TextView) recyclerViewDrawer.getChildAt(i).findViewById(R.id.textViewDrawerItemTitle);
                    imageViewDrawerIcon.setColorFilter(color);
                    if(Build.VERSION.SDK_INT > 15){
                        imageViewDrawerIcon.setImageAlpha(255);
                    }else{
                        imageViewDrawerIcon.setAlpha(255);
                    }
                    textViewDrawerTitle.setTextColor(color);
                    RelativeLayout relativeLayoutDrawerItem = (RelativeLayout) recyclerViewDrawer.getChildAt(i).findViewById(R.id.relativeLayoutDrawerItem);
                    relativeLayoutDrawerItem.setFocusableInTouchMode(true);
                }else{
                    ImageView imageViewDrawerIcon = (ImageView) …
Run Code Online (Sandbox Code Playgroud)

android get-childitem android-recyclerview

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