我有以下Test-class,但是我设置为"ContextConfiguration-locations"并不重要 - 它从不设置我的UserService.当我在locations-property中设置一个不存在的文件时,它不会抛出任何错误...我做错了什么?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContextTest.xml" })
public class BasicPersistenceTest {
@Autowired
private UserService userService;
@Test
public void testUserLogin() throws Exception {
User result = userService.getUser("stefan", "walkner");
Assert.assertNotNull(result);
}
@Test
public void testLogin() {
User user = userService.getUser("stefan", "walkner");
Assert.assertNull(user);
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
Run Code Online (Sandbox Code Playgroud)
春季版:2.5.6.SEC01
JUnit-Version:4.5
JDK:1.5
奇怪的问题:
想象一下,我有一个名为BaseFoo的基类.我有一个名为IFoo的方法接口.我在BaseFoo下面有很多类.
如果我在BaseFoo中实现接口,我不需要在继承的类中实现,对吗?
好的,但想象一下,我有一个处理IFoo的通用功能.我是否需要明确声明他们实施IFoo?
像这样(伪插图代码)
public class BaseFoo:IFoo;
public interface IFoo;
Run Code Online (Sandbox Code Playgroud)
我应该这样做吗?
public class AmbarFoo:BaseFoo,IFoo
Run Code Online (Sandbox Code Playgroud)
要么?
public class AmbarFoo:BaseFoo
Run Code Online (Sandbox Code Playgroud)
什么是最正确的方法?效果是否相同?如果我测试AmbarFoo是否是IFoo我会得到什么?
谢谢
考虑:
if (something) {
// Code...
}
Run Code Online (Sandbox Code Playgroud)
安装CodeRush后,建议:
if (!something) {
return;
}
// Code...
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这更好吗?当然,没有任何好处.
CUSTOMVERTEX* pVertexArray;
if( FAILED( m_pVB->Lock( 0, 0, (void**)&pVertexArray, 0 ) ) ) {
return E_FAIL;
}
pVertexArray[0].position = D3DXVECTOR3(-1.0, -1.0, 1.0);
pVertexArray[1].position = D3DXVECTOR3(-1.0, 1.0, 1.0);
pVertexArray[2].position = D3DXVECTOR3( 1.0, -1.0, 1.0);
...
Run Code Online (Sandbox Code Playgroud)
我暂时没有触及C++ - 因此这个话题,但这段代码让我自己感到困惑.调用m_pVB-> Lock后,初始化数组.
这很好,但我遇到的问题就是如何发生这种情况.下面的代码使用了9个元素,但是我正在使用的代码的另一个函数(几乎是复制/粘贴)只有四个元素.
CUSTOMVERTEX是一个结构体,但我的印象是这不重要,并且需要将结构/对象数组初始化为固定大小.
任何人都可以清除这个吗?
编辑:
鉴于回复,它如何知道我需要数组中的9个元素,或者等等...?
因此,只要缓冲区足够大,元素就是合法的.如果是这样,如果我没有弄错的话,这段代码就是设置缓冲区大小.
if( FAILED( m_pd3dDevice->CreateVertexBuffer( vertexCount * sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &m_pVB, NULL ) ) ) {
return E_FAIL;
}
Run Code Online (Sandbox Code Playgroud) 我已经找到了阅读XML的东西,但是我发现编写和更新XML很困难.
任何人都可以帮助提供有关写入XML文件的最佳方式的一些代码或建议吗?
我正在开发一个函数,它给出了一些设置 - 例如行距,输出(以字符串形式)被修改。为了测试此类场景,我使用字符串文字,如下所示的预期结果。
该方法使用字符串生成器 ( AppendLine) 生成所述输出。我遇到的一个问题是比较这些字符串。在下面的示例中,两者就其所代表的含义而言是相同的。结果是我关心的区域,但是当比较两个字符串时,一个是文字,一个不是,相等自然会失败。这是因为其中一个字符串发出行间距,而另一个字符串仅演示其包含的格式。
解决这个平等问题的最佳方法是什么?我确实关心格式,例如方法结果中的新行,这是至关重要的。
代码:
string expected = @"Test\n\n\nEnd Test.";
string result = "Test\n\n\nEnd Test";
Console.WriteLine(expected);
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
输出:
测试\n\n\n结束测试。 测试 结束测试
考虑以下情况,StubFoo是Foo的存根,我希望将其用于某些测试.
class Runner
def run
Foo = StubFoo
foo = Foo.new
# using Foo...
end
end
Run Code Online (Sandbox Code Playgroud)
这会生成以下错误消息: Dynamic constant assignment
然而,在RSpec我可以做以下工作,这是有效的,并且完全合法:
it "should be an example" do
Foo = StubFoo
foo = Foo.new
foo.to_s.should == "I am stubbed!"
end
Run Code Online (Sandbox Code Playgroud)
关于这一点的一些问题.
我在使用模拟框架之前做这个,纯粹想知道如何在Ruby中进行模拟,存根等等.我听说动态语言更容易模拟/存根,并且互联网上有指南,其中简单的类重新分配如上所述.根据我的研究,在Ruby中,不可能在方法中声明常量,但我如上所述会感到困惑.
编辑
对,这开始变得更有意义了.我已经更新了run,现在正在使用const_set.
def run
old = Foo
self.class.const_set(:Foo, StubFoo)
foo = Foo.new
puts foo.to_s
self.class.const_set(:Foo, old)
foo = Foo.new
puts foo.to_s
end
Run Code Online (Sandbox Code Playgroud)
这会产生一个警告,然而,这是什么/如何模拟框架在Ruby中工作?显然更优雅,功能齐全,但他们只是压制这个警告?
如何测试void方法在.NET中引发特定异常.
我有一个方法,根据输入抛出3种不同类型的异常.我如何测试我每次都获得当前的一个,并且还测试它在通过正确输入时不会抛出任何内容.
谢谢!
只是一点背景,我来自一个强大的C#/静态类型背景.因此,我倾向于用.dlls来思考.因此,如果我在一个项目中工作,我会参考我需要的dll,那就是那个.
作为Ruby和Rails的新手,我发现我可能做错了什么.例如,我使用本地的宝石在家创建一个Rails应用程序.使用不同的计算机(比如工作计算机)我试图在项目上工作,却发现我使用的是不同版本的宝石.执行捆绑安装后,我回到了一个工作项目.
我遇到的问题是我的宝石库变得"凌乱".我最终得到了同一个宝石的几个版本.这是其他人的工作方式吗?当使用gem(来自require)时,它会默认为最新版本吗?我觉得好像我没有正确管理依赖项,尽管我已经提到过我是Ruby的新世界.
我应该只包含我的依赖项,然后每次有不同/缺少的依赖项时执行bundle安装吗?如果我想升级到更新版本的gem,会发生什么?是否会更新bundle使用并继续使用它的gemfile?
ls | ConvertTo-Xml # Broken?
ls | ConvertTo-Json # Works
ls | ConvertTo-Html # Works
Run Code Online (Sandbox Code Playgroud)
后者有效,但第一个仅返回:
xml Objects
--- -------
version="1.0" Objects
Run Code Online (Sandbox Code Playgroud)
除非我很愚蠢,否则网上的其他例子表明这种事情应该有效。