我正在尝试模拟数据存储库对象但是在我的MockRepository上设置了一个期望之后,它每次都返回null.我的代码如下:
[Test]
public void GetById_NotNull()
{
Person expectedPerson = new Person() { Id = 1, Name="Jon"};
MockRepository MockRepository = new MockRepository();
var FakePersonRepository = MockRepository.StrictMock<IRepository<Person>>();
FakePersonRepository.Expect(action => action.Get(1)).IgnoreArguments().Return(expectedPerson);
PersonService PersonService = new PersonService(FakePersonRepository);
Person returnedPerson = PersonService.Get(1);
Assert.IsNotNull(returnedPerson);
}
//and inside my person service
public class PersonService
{
private IRepository<Person> _PersonRepository;
public PersonService(IRepository<Person> PersonRepository)
{
this._PersonRepository = PersonRepository;
}
public Person Get(int Id)
{
Person p = _PersonRepository.Get(Id);
return p;
}
}
Run Code Online (Sandbox Code Playgroud)
测试底部的断言失败,返回的人总是为空.我知道我的模拟......想法一定是做错了吗?
我正在尝试使用dotNetOpenId登录GMail帐户.它工作,但我无法检索任何索赔.我知道我也可以检索电子邮件地址或用户名,但只有ClaimedIdentifier可用时才会返回任何声明.有人知道如何从Gmail帐户中检索此数据吗?如果你能提供一个ClaimsRequest配置的例子,我将不胜感激.
谢谢
我的一部分认为这不应该是可能的(即使它是),但无论如何我会问.
给定以下类层次结构(Grandparent并且Parent来自第三方,因此,不在我的控制之下),我将如何覆盖myMethod()以Child绕过重写的实现Parent并调用其中的Grandparent?
class Grandparent {
public void myMethod() {
// do stuff
}
}
class Parent extends Grandparent {
@Override public void myMethod() {
super.myMethod();
// do something else
}
}
class Child extends Parent {
@Override public void myMethod() {
// ??? I want to *only* do what Grandparent did here
}
}
Run Code Online (Sandbox Code Playgroud)
假设Parent该类提供了许多其他有用的行为,并且是Child层次结构的关键元素(换句话说,我不是在寻找"创建Child子类Grandparent".
我们有一些基本的C#逻辑,它遍历目录并返回其中的文件夹和文件.当针对无法访问或无效的网络共享(\\ server\share\folder)运行时,代码似乎在从调用返回之前"挂起"大约30秒.
我想最终得到一个方法,它将尝试从给定路径获取文件夹和文件,但没有超时期限.换句话说,完全减少或消除超时.
我已经尝试过一些简单的事情,就像提前验证目录的存在一样简单,认为"不可用"的网络驱动器会很快返回false,但是没有按预期工作.
System.IO.Directory.Exists(path) //hangs
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path); //hangs
Run Code Online (Sandbox Code Playgroud)
关于什么可以帮助我实现有效(并且希望管理)的解决方案的任何建议?
我写了一个宏,使用QueryTable将CSV文件导入我的电子表格.我的目标是导入CSV数据,并将其保存在电子表格中以供将来参考.
但是,QueryTable当然会更新外部CSV文件,我想防止这种情况(因为我想忘记外部文件).是否有可用于防止刷新的QueryTable设置,或者这是否是完全使用的错误功能?
我刚刚切换到Moq并遇到了问题.我正在测试一个创建业务对象的新实例的方法,从用户输入值设置对象的属性,并调用方法(SaveCustomerContact)来保存新对象.业务对象作为ref参数传递,因为它通过远程处理层.我需要测试传递给SaveCustomerContact的对象是否按预期设置了所有属性,但因为它在控制器方法中被实例化为new,所以我似乎无法这样做.
public void AddContact() {
var contact = new CustomerContact() { CustomerId = m_model.CustomerId };
contact.Name = m_model.CustomerContactName;
contact.PhoneNumber = m_model.PhoneNumber;
contact.FaxNumber = m_model.FaxNumber;
contact.Email = m_model.Email;
contact.ReceiveInvoiceFlag = m_model.ReceiveInvoiceFlag;
contact.ReceiveStatementFlag = m_model.ReceiveStatementFlag;
contact.ReceiveContractFlag = m_model.ReceiveContractFlag;
contact.EmailFlag = m_model.EmailFlag;
contact.FaxFlag = m_model.FaxFlag;
contact.PostalMailFlag = m_model.PostalMailFlag;
contact.CustomerLocationId = m_model.CustomerLocationId;
RemotingHandler.SaveCustomerContact( ref contact );
}
Run Code Online (Sandbox Code Playgroud)
这是测试:
[TestMethod()]
public void AddContactTest() {
int customerId = 0;
string name = "a";
var actual = new CustomerContact();
var expected = new CustomerContact() {
CustomerId = …Run Code Online (Sandbox Code Playgroud) 我运行JVisualVM(Windows XP,Sun Java 1.6.0.13,32位客户端VM)来监视远程应用程序(Linux,Sun Java 1.6.0.07,64位服务器VM).在启动实际的远程应用程序之前,我jstatd使用all访问策略在远程计算机上启动:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)
然后我使用命令行启动实际的应用程序
java -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=3333
compileTest.Main
Run Code Online (Sandbox Code Playgroud)
从客户端计算机,我可以看到远程应用程序并监视它.我也可以进行线程转储等.遗憾的是,堆转储按钮显示为灰色.
如何使用JVisualVM从远程监控的应用程序获取堆转储?
我尝试使用jConsole.使用jConsole,可以使用com.sun.management.HotSpotDiagnostic dumpHeap操作进行远程堆转储.我希望将转储转移到客户端,并使用JVisualVM提供的工具进行分析.我怎样才能做到这一点?
我想为自己的个人启发学习LAMP的发展.
我尝试在Microsoft VPC中设置Ubuntu 8.10"Hardy Heron",但我无法让视频在800x600以上工作.和xorg.conf玩了一百万次但没有快乐.任何人都可以推荐一个好的发行版与VPC配合使用吗?任何有关Apache和Perl/PHP入门的指南也会受到欢迎.
Java有一个逻辑AND运算符.
Java有一个逻辑OR运算符.
Java有一个逻辑NOT运算符.
据sun称,Java没有逻辑XOR运算符.我想定义一个.
作为一种方法,它只是定义如下:
public static boolean logicalXOR(boolean x, boolean y) {
return ( ( x || y ) && ! ( x && y ) );
}
Run Code Online (Sandbox Code Playgroud)
以下列方式调用此方法:
boolean myVal = logicalXOR(x, y);
Run Code Online (Sandbox Code Playgroud)
我宁愿有一个运算符,使用如下:
boolean myVal = x ^^ y;
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于如何在Java中定义新运算符的内容.我应该从哪里开始?
我正在寻找在多线程Win服务中使用单例进行日志记录,并想知道我可能遇到的一些问题.我已经设置了get实例来处理同步
private static volatile Logging _instance;
private static object _syncRoot = new object();
private Logging(){}
public static Logging Instance
{
get
{
if (_instance==null)
{
lock(_syncRoot)
{
if (_instance == null)
{
_instance = new Logging();
}
}
}
return _instance;
}
}
Run Code Online (Sandbox Code Playgroud)
还有什么我可能需要担心的吗?