谷歌搜索之后,我很惊讶我没有得到这个常见情况的答案......
如果环境变量不存在,如何在PowerShell中设置?
我的目的是对私有方法进行单元测试,我理解如何导入@VisibleForTesting并将其用于私有方法.我做了很多搜索,但无法看到演示此功能的完整示例.
例如:
class MyClass {
@VisibleForTesting
private double[] getWorkArray(double[] values,int length) {
:
:
return <some double array>
}
}
Run Code Online (Sandbox Code Playgroud)
现在在JUnit中,我必须能够做到
@Test
public void testProvateMethod() {
MyClass object = new MyClass();
assertNotNull(object.getWorkArray(...);
}
Run Code Online (Sandbox Code Playgroud)
但困难的部分是我无法理解/执行以下操作a)包含相关注释处理器的maven编译器插件片段b)实际上能够测试私有方法.(因为它抛出了与方法可见性相关的错误)
我在JUnit中编写测试时(由于私有访问错误),我无法执行此操作.例如:mvn clean test
请提供一个完整的示例,说明完成私有方法的JUnit测试所涉及的所有步骤.
使用install命令安装应用程序和使用程序包管理器pm install命令之间的区别是什么?他们做同样的工作吗?一个命令实际上是在后面调用另一个吗?
adb install -r APK_FILE
adb shell pm install APK_FILE
Run Code Online (Sandbox Code Playgroud) 这是从这个问题继续:
@Aspect方面的Spring autowired bean为null
我最初的理解是,当使用Spring AOP时,使用@Aspect注释的类被创建为spring managed beans,因此依赖注入将正常工作.但是,似乎带有@Aspect注释的对象被创建为弹簧容器外的单例,因此我必须像XML一样配置它,以便将其作为spring托管bean启用:
<bean id="aspect" class="com.mysite.aspect" factory-method="aspectOf" />
Run Code Online (Sandbox Code Playgroud)
这已经让我完全糊涂了.我认为以下配置将使用spring AOP:
<context:component-scan base-package="com.mysite.aspectPackage"/>
<aop:aspectj-autoproxy/>
Run Code Online (Sandbox Code Playgroud)
因此,它将使用组件扫描创建方面bean来扫描@Aspect注释,然后autoproxy将创建一个beanPostProcessor,它使用适当的建议代理我的上下文中的所有bean.然后我想要启用aspectJ我需要一个完全不同的XML配置(顺便说一下,我似乎无法在文档中找到一个例子).正是这种配置使用aspectJ来创建可以在我的容器之外的方面,或者通过操作字节码而不是代理来工作.
注意
这不是关于spring AOP和J方面之间差异的问题,这里有很好的阐述:
我实际上在WebView中记录了会话.但我也使用httpclient来发送和从网络获取数据.我在互联网上看到,无法获取WebView的内容,因此我需要使用我的httpclient从Web服务获取数据.
问题是这个webservice使用会话...而我的会话在我的WebView中,所以httpclient没有它,我无法访问webservice的内容.
我看到很多关于这个问题的帖子,但我不明白解决方案.
这是我在onPageStarted上做的:
CookieManager mgr = CookieManager.getInstance();
Log.i( "URL", url );
Log.i("Cookie",mgr.getCookie("mywebsite.com"));
String cookie_string = mgr.getCookie("mywebsite.com");
if(cookie_string.length() > 1) {
Data.instance().getPref().edit().putString("cookie",cookie_string).commit();
}
Run Code Online (Sandbox Code Playgroud)
我看到我有这样的东西,所以我希望那些包括会话:(我删除号码)
__utma=......(number)......;
__utmc=number;
__utmz=number.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
wt3_eid=%number%number;
wt3_sid=%number
Run Code Online (Sandbox Code Playgroud)
然后我不知道该怎么做才能在我的httpclient中设置这个cookie.我尝试了,没有成功:
HttpClient client = new DefaultHttpClient();
BasicCookieStore cookieStore = new BasicCookieStore();
String login_cookie_string = Data.instance().getPref().getString("cookie", "");
String[] cookie_parts = null;
if(login_cookie_string.length()> 0)
{
//debug_view.setText(login_cookie_string);
Log.d("COOKIE", login_cookie_string);
cookie_parts = login_cookie_string.split(";");
for(int t=0;t < cookie_parts.length;t++)
{
String[] cookieContent = cookie_parts[t].split("=");
Cookie login_cookie = new BasicClientCookie(cookieContent[0],cookieContent[1]);
((BasicClientCookie) login_cookie).setDomain("mywebsite.com");
cookieStore.addCookie(login_cookie);
}
}
((AbstractHttpClient) client).setCookieStore(cookieStore);
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio上使用ReSharper但我也是一个vim用户.我听说过这个VsVim.我下载并安装了visual studio 2010的扩展程序.但无法使任何vim命令工作.实际上,我认为我没有设法让VsVim工作,因为任何vim键绑定都不起作用.我怀疑ReSharper阻止了扩展.激活此VsVim扩展并开始使用它的方法是什么?
我是正则表达式的新手,想要使用“grep”命令进行一些练习。但是,我注意到人们一直在使用以下 rgx 命令。
grep -E <regular expression pattern>
grep -P <regular expression pattern>
grep -e <regular expression pattern>
grep <regular expression pattern>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我它们之间有什么区别吗?我已经在“man”命令和一些简单的谷歌中查找了它们,但要么太简短,要么太难以理解(例如,什么是“perl 风格”或扩展正则表达式?)。
我知道在Linux中,如果我们想要一个文件夹从命名f_old到f_new,我们可以运行:
mv f_old f_new
Run Code Online (Sandbox Code Playgroud)
但这个命令实际上让我很困惑.系统是否复制了所有内容f_old,将其粘贴到新文件夹f_new并f_old最后删除?或者它只是重命名f_old为f_new?
我div喜欢这个
<div id="sale">
........
</div>
Run Code Online (Sandbox Code Playgroud)
我试着用这两个
$('#sale').delay(3000).slideDown(500);
Run Code Online (Sandbox Code Playgroud)
和
setTimeout(sale(), 3000);
function sale() {
$('#sale').slideDown(500);
}
Run Code Online (Sandbox Code Playgroud)
但他们都没有工作.jQuery延迟说$('#sale').delay()不是一个函数,而setTimeout方式是无用的setTimeout调用(缺少引号).如果我在sale()通话中添加双引号,它只是说"销售没有定义".
为什么这些都不起作用?
我要做的就是在加载页面3秒后显示div.
我正在学习并尝试从本教程中用Java 实现观察者模式。我被困在我是否应该使用WeakReference主题来容纳观察者的问题上。
对于下面的实现, theSubject和 theBinaryObserver相互持有强引用,我担心这会阻止 GC 收集未使用的Subject.
所以我的问题是,我应该使用List<WeakReference<Observer>> observers而不是List<Observer> observers吗?
主题.java
public class Subject {
private List<Observer> observers = new ArrayList<Observer>();
private int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
notifyAllObservers();
}
public void attach(Observer observer){
observers.add(observer);
}
public void notifyAllObservers(){
for (Observer observer : observers) {
observer.update();
}
}
}
Run Code Online (Sandbox Code Playgroud)
观察者.java
public abstract class Observer { …Run Code Online (Sandbox Code Playgroud) java ×3
android ×2
linux ×2
.net ×1
adb ×1
aop ×1
c# ×1
command-line ×1
delay ×1
filesystems ×1
grep ×1
guava ×1
httpclient ×1
javascript ×1
jquery ×1
maven ×1
powershell ×1
regex ×1
settimeout ×1
spring ×1
spring-aop ×1
unit-testing ×1
vsvim ×1
webview ×1