我正在为AngularJS开发一些TDD(完全是另一个故事)并遇到了我的beforeEach调用显然没有被执行的情况.我把它减少到下面的例子.
事实证明,beforeEach中的console.log消息和它们都出现了:
describe('userApp', function(){
beforeEach( function(){
console.log("in beforeEach...");
});
it('should be able to log something', function(){
console.log("in it...");
});
});
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为未显示beforeEach中的console.log消息,并且在尝试$ log.info并且抛出错误消息时它失败: TypeError: Cannot read property 'info' of undefined
describe('userApp', function(){
var $log;
beforeEach(module('userApp', function($provide) {
console.log("in beforeEach...");
// Output messages
$provide.value('$log', console);
}));
it('should be able to log something', function(){
console.log("in it...");
$log.info("Using $log for logging...");
});
});
Run Code Online (Sandbox Code Playgroud)
我正在使用Angular 1.3.15,业力0.12.31,茉莉2.3.4.我可能会忽略一些明显的东西......
编辑:Michael Radionov的解释非常有用; 但是,我不明白为什么这个修改过的代码仍然会抛出相同的错误.
describe('userApp', function(){
console.log("starting TEST3"); <=== this prints
var $log;
beforeEach(function() {
console.log("TEST3: in beforeEach..."); <=== …
Run Code Online (Sandbox Code Playgroud) 我正在从目前正在运行的 ruby程序中构建一个gem .它使用的是jruby 1.7.12,除此之外,还有一个"需要'yaml".对于gem,我的Gemfile包含:
source 'https://rubygems.org'
gemspec
Run Code Online (Sandbox Code Playgroud)
我跑的时候
gem build program.gemspec
Run Code Online (Sandbox Code Playgroud)
这很好,但是当我跑的时候
gem install program-0.15.01.gem
Run Code Online (Sandbox Code Playgroud)
它失败了
ERROR: Could not find a valid gem 'yaml' (>= 0) in any repository
ERROR: Possible alternatives: aml, cyaml, haml, maml, raml
Run Code Online (Sandbox Code Playgroud)
没有任何意义,因为yaml模块是ruby 1.9.3标准库的一部分.
我已升级到最新的rubygems(2.4.5).
我错过了什么?
我在jruby 1.7.12(1.9.3p392)上使用pry 0.10.1 java和pry-nav 0.2.4.在调用binding.pry之后的rspec步骤中,我输入pry命令:
whereami
Run Code Online (Sandbox Code Playgroud)
我得到的只是
ArgumentError: Symbol or String expected, but NilClass given.
from /Users/yc98js1/.rbenv/versions/jruby-1.7.18/lib/ruby/gems/shared/gems/coderay-1.1.0/lib/coderay/helpers/plugin.rb:215:in `validate_id'
Run Code Online (Sandbox Code Playgroud)
哪里出错了?[双关语]
我们在项目中使用 ant Design,我正在尝试使用他们的Carousel 组件。该文档显示了方法goto(), next(), prev()
,但我无法访问这些方法。我们对其他 antD 组件执行此操作的方法是:
const { goto, next, prev } = Carousel;
Run Code Online (Sandbox Code Playgroud)
一旦你导入了 Carousel,但这不起作用——这些方法都是未定义的。这些方法已在此 2017 年拉取请求中公开(尽管原始拉取请求引用previous()
而不是prev()
),但我看不到如何访问它们。该 PR 还提到,该 PR 的目的是使方法可用而无需 useRefs,这就是所有 SO 示例似乎显示的都是基于类的解决方案,而不是我们正在使用的 Hooks。
我在这里缺少什么?
这段代码:
<PopupContent>
<label htmlFor="popup" style={{ margintop : '0px', marginbottom : '0px' }}>log out</label>
<button type="button" id="popup" onClick={this.logUserOut} />
</PopupContent>
Run Code Online (Sandbox Code Playgroud)
抛出这两个错误:
84:9 error A form label must be associated with a control jsx-a11y/label-has-associated-control
85:9 error A control must be associated with a text label jsx-a11y/control-has-associated-label
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
bash手册(我在OSX上使用的是4.3.42版)声明垂直条'|' character用作文件globbing中多个文件模式的分隔符.因此,以下应该适用于我的系统:
projectFiles=./config/**/*|./support/**/*
Run Code Online (Sandbox Code Playgroud)
但是,第二个模式在该目录结构中的最后一个文件上给出"权限被拒绝",因此该模式永远不会被解析为projectFiles.我尝试过这方面的变化,包括将模式包装在括号中,
projectFiles=(./config/**/*)|(./support/**/*)
Run Code Online (Sandbox Code Playgroud)
这在手册中列出,但也不起作用.
关于我做错的任何建议?