我的foo_controller_spec.rb中有30个规格,当我使用spec运行整个文件时,我得到4个失败,2个待定.当我单独运行4个失败的规格时,其中3个仍然失败,但其中一个通过.起初我认为这是一个数据库问题,在运行之间没有正确清理数据.所以我安装了database_cleaner(http://github.com/bmabey/database_cleaner)并将此代码添加到我的spec_helper:
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
Sham.reset
login
end
config.after(:each) do
DatabaseCleaner.clean
end
Run Code Online (Sandbox Code Playgroud)
现在,当我运行我的规格时,我可以看到每个规格之间的表都被截断,所以我知道它正在工作,但是当使用所有其他规格运行时规范仍然失败但是当单独运行时传递.我在这里错过了什么?
对于我们正在开始的新项目(在Hibernate 3之上使用JPA 2),我们需要能够存储XML文档,然后在以后查询其内容和结构.我们想要支持的数据库是DB2,Oracle和SQLServer.
我知道所有三个数据库供应商都支持原生XML查询(使用SQL和类似XQuery的语句),但Hibernate是否有直接的支持呢?换句话说,我可以编写一组hibernate数据访问代码,使用Hibernate/JPA的内置功能查询所有3种数据库类型,还是需要为每种数据库类型编写特定的查询?
我很欣赏我可以将列定义为@Lob列,然后读取所有记录,解析和检查,但我希望利用数据库引擎的强大功能,而不是自己动手.
作为参考,我们一次只能使用一种DB风格,只是我们希望能够在需要时支持所有3种风味.
谢谢Steve
我必须创建一个带有选择的XSL变量.如下:
<xsl:variable name="grid_position">
<xsl:choose>
<xsl:when test="count(/Element) >= 1">
inside
</xsl:when>
<xsl:otherwise>
outside
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
后来在我的代码中,我做了一个xsl,如果:
<xsl:if test="$grid_position = 'inside'">
{...code...}
</xsl:if>
Run Code Online (Sandbox Code Playgroud)
问题是我的变量永远不会='内部',因为换行符和缩进.如何从变量中删除空格?我知道我可以disable-output-escaping="yes"在xsl:copy-of中使用它时将其删除,但它不适用于xsl:variable标记.那么如何删除那些空格和换行符呢?
这是否会产生任何代码异味或违反SOLID原则?
public string Summarize()
{
IList<IDisplayable> displayableItems = getAllDisplayableItems();
StringBuilder summary = new StringBuilder();
foreach(IDisplayable item in displayableItems)
{
if(item is Human)
summary.Append("The person is " + item.GetInfo());
else if(item is Animal)
summary.Append("The animal is " + item.GetInfo());
else if(item is Building)
summary.Append("The building is " + item.GetInfo());
else if(item is Machine)
summary.Append("The machine is " + item.GetInfo());
}
return summary.ToString();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我的Summarize()与实现类相关联,例如Human,Animal等.
闻到了吗?我是否违反了LSP?任何其他SOLID原则?
java中的枚举是否有最佳实践?例如,我有以下内容:
class Foo {
public static final int OPTION_1 = 'a';
public static final int OPTION_2 = 'b';
public void doSomething(String name, int option) {
...
}
}
void test() {
Foo foo = new Foo();
foo.doSomething("blah", Foo.OPTION_2);
}
Run Code Online (Sandbox Code Playgroud)
所以用户可以选择使用Foo中定义的静态int之一,但是他们也可以提供他们想要的任何其他int,没有编译时检查它.在java中是否存在某种方法,这样做是为了限制最终开发人员只从已定义的选项类型中进行选择?
谢谢
希望这是一个简单的问题.
我在理解Django 1.2中新的多数据库功能的文档时遇到了一些麻烦.首先,我似乎找不到你如何在你的一个模型中使用第二个数据库的例子.
当我在models.py中定义一个新类时,如何指定我打算连接的数据库?
我的settings.py包含类似于 -
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'modules',
'USER': 'xxx',
'PASSWORD': 'xxx',
},
'asterisk': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'users',
'USER': 'xxxx',
'PASSWORD': 'xxxx',
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我正在阅读路由器上的文档,如假人.如果其他人正在努力解决这个问题,请确保在放弃之前阅读2到3次!
我怎样才能简化这些陈述,而不必一直计算到34并且有34个单独的陈述......
$('a#timeline-2010-lnk1').click(function() {
$('#timeline-2010-1').show();
return false;
});
$('a#timeline-2010-lnk2').click(function() {
$('#timeline-2010-2').show();
return false;
});
$('a#timeline-2010-lnk3').click(function() {
$('#timeline-2010-3').show();
return false;
});
$('a#timeline-2010-lnk4').click(function() {
$('#timeline-2010-4').show();
return false;
});
Run Code Online (Sandbox Code Playgroud) 这是使用类似全局变量的最干净的方法吗?通常,禁止使用全局变量,但我不知道从不同类访问NSUserDefaults的更好解决方案.
我读了一下并想出了这个.我定义了一个Contants.h和一个Constants.m文件,并将它们包含在我需要的任何地方.
//Constants.h
#import <Foundation/Foundation.h>
@interface Constants : NSObject {
extern NSUserDefaults *settings;
}
@end
Run Code Online (Sandbox Code Playgroud)
.
//Constants.m
@implementation Constants
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:settingsDict];
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
@end
Run Code Online (Sandbox Code Playgroud)
这里的问题是我想将值初始化为常量.我在Constants.m中没有方法.所以我的辅助变量也是全局变量?
有一点需要提及:我认为全局变量也必须发布?
谢谢你的帮助!
编辑:
@ hotpaw2:
AppBundleSingleton.h:
#import <Foundation/Foundation.h>
@interface AppBundleSingleton : NSObject {
}
+ (AppBundleSingleton *)sharedAppBundleSingleton;
@end
Run Code Online (Sandbox Code Playgroud)
AppBundleSingleton.m:
#import "AppBundleSingleton.h"
static AppBundleSingleton *sharedAppBundleSingleton = nil;
@implementation AppBundleSingleton
#pragma mark -
#pragma mark Singleton methods
+ (AppBundleSingleton *)sharedAppBundleSingleton { …Run Code Online (Sandbox Code Playgroud) 我正在使用Mercurial管理$ HOME,以保持我的dotfiles好看和跟踪,或至少对我来说重要的.
但是,〜中的文件和目录数量很多,不需要跟踪,而且这个集合不断变化且不断增长.
从历史上看,我已经通过这个.hgignore解决了这个问题.
syntax: glob
*
Run Code Online (Sandbox Code Playgroud)
这样可以保持我的状态干净,只会使之前跟踪的文件可见.但是,我有一些目录(在我的情况下scripts,.emacs.d),我希望看到未跟踪的文件; 我几乎总是想跟踪那些目录的新增内容.
我知道我可以运行hg st -u scripts以识别未跟踪的文件,但我想要一种方法,我可以使用普通的ole hg状态实现相同的功能.
有没有办法做到这一点?
想象一个Web应用程序,它允许登录用户只需按一下按钮就可以在Web服务器上运行shell命令.通过一些标准库os工具,这在大多数语言中相对简单.
但是如果该命令长时间运行,则不希望您的UI挂起.同样,使用某种后台进程或将要执行的命令放到消息队列上(并且可能将输出和状态保存到某处以供以后使用)相对容易处理.只需快速返回保存,我们将运行并回复您.
我想要做的是显示上述Web UI的输出触发shell命令,因为它发生.所以垂直滚动文本就像在终端中运行一样.
我对如何处理这个问题有一个模糊的想法,可能将输出流式传输到websocket并简单地将输出打印到屏幕上.
我想问的是:
他们的任何插件,库或应用程序是否已经这样做了.我可以使用或阅读的来源.理想情况下是开源python/django或ruby/rails工具,但其他堆栈也很有趣.