标签: detect

单元测试在未在应用程序服务器中运行时应如何设置数据源?

感谢大家的帮助.你发布了一些(我应该预料到的)答案,表明我的整个方法都是错误的,或者低级代码永远不必知道它是否在容器中运行.我倾向于同意.但是,我正在处理一个复杂的遗留应用程序,并且没有选择对当前问题进行重大重构.

让我退后一步,问问题是我原来问题的动机.

我有一个在JBoss下运行的遗留应用程序,并对低级代码进行了一些修改.我为我的修改创建了一个单元测试.为了运行测试,我需要连接到数据库.

遗留代码以这种方式获取数据源:

(jndiName是一个已定义的字符串)

Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup(jndiName);
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我在单元测试下运行此代码时,Context没有定义数据源.我的解决方案是尝试查看我是否在应用程序服务器下运行,如果没有,则创建测试DataSource并返回它.如果我在app服务器下运行,那么我使用上面的代码.

所以,我真正的问题是:这样做的正确方法是什么?是否有一些批准的方式单元测试可以设置上下文以返回适当的数据源,以便被测代码不需要知道它在哪里运行?


对于上下文:我的原始问题:

我有一些Java代码需要知道它是否在JBoss下运行.是否有规范的方法来判断代码是否在容器中运行?

我的第一种方法是通过实验开发出来的,包括获取初始上下文和测试它可以查找某些值.

private boolean isRunningUnderJBoss(Context ctx) {
        boolean runningUnderJBoss = false;
        try {
            // The following invokes a naming exception when not running under
            // JBoss.
            ctx.getNameInNamespace();

            // The URL packages must contain the string "jboss".
            String urlPackages = (String) ctx.lookup("java.naming.factory.url.pkgs");
            if ((urlPackages != null) && (urlPackages.toUpperCase().contains("JBOSS"))) {
                runningUnderJBoss = true;
            }
        } catch (Exception e) {
            // If we …
Run Code Online (Sandbox Code Playgroud)

java jboss containers detect java-ee

6
推荐指数
2
解决办法
1728
查看次数

验证用户输入或

我们让用户从单个文本输入中搜索数据库,并且我在过滤一些用户提供的字符串时遇到了困难.

例如,如果用户提交:

????????? lcd SONY
Run Code Online (Sandbox Code Playgroud)

(注意?)我需要取消搜索.

我包括上面的字符串的base64编码版本,以便它运行:

print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
Run Code Online (Sandbox Code Playgroud)

我之前忽略了这些输入但是现在(我不知道为什么)只是意识到mysql数据库查询几乎永远执行所以现在这是高优先级.

另一个强调我们使用utf-8和mb_detect_encoding的例子没有多大帮助:

print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
????????? ?????%
Run Code Online (Sandbox Code Playgroud)

所以:

  • 如何检测/过滤这些输入?
  • 这个输入是如何生成的?

php unicode validation filter detect

6
推荐指数
1
解决办法
264
查看次数

检测到连接到PC的Android设备

我有一个android devic,我想知道它什么时候通过java/.net连接到电脑我知道它可能 - 三星新PC工作室正在做它,当我连接Android设备它让我知道.我怎么能实现同样的目标?

.net java android connect detect

6
推荐指数
1
解决办法
5240
查看次数

如何使用jQuery或其他一些SIMPLE方式检测移动浏览器..?

可能重复:
在jQuery中检测手持设备的最佳方法

我想制作一个我的网络应用程序的移动版本.我如何运行一个函数来检测是否从桌面或移动浏览器发出请求?

这样,如果用户从移动浏览器请求他们点击链接,而不是去实际页面,它应该被劫持并做一些其他事件.

提前致谢..

mobile jquery detect

6
推荐指数
2
解决办法
4万
查看次数

如何在CustomView中检测Back Key

我想在CustomView中检测Back Key事件(例如,EditText).在许多情况下,它是通过覆盖onKeyDown()dispatchKeyEvent()在我的CustomView获得焦点的条件下实现的.

CustomView.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if( keyCode == KeyEvent.KEYCODE_BACK) {
        ..... 
        return true;
    }else{
        return super.onKeyDown(keyCode, event);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果包含CustomView的Activity也覆盖了onKeyDown()or dispatchKeyEvent(),则无法正常工作.也就是说,Activity已经在CustomView之前获得了Back-KeyEvent.

我优先想要在Activity之前捕获Back-KeyEvent.

请告诉我一些关于这个问题的想法.谢谢.

android key detect back

6
推荐指数
1
解决办法
3920
查看次数

jQuery在移动Safari/iOS上检测页面底部

我基本上想要与facebook,twitter和所有其他"无限"滚动网站相同的功能,我现在使用的代码是

jQuery(document).ready(function(){
    $ = jQuery;
        $(window).scroll(function(){
            if ($('.iosSlider').is(':visible'))
            {
                if($(window).scrollTop() + $(window).height() == $(document).height())
                {
                $.get('/our-work/fakework.php', function(data) {
                $('#mobile-thumbs').append(data);
                });
                }
             }
        });
});
Run Code Online (Sandbox Code Playgroud)

这可以在所有桌面浏览器上完美运行,甚至在我的黑莓手机上也可以在垃圾邮件向下滚动按钮后工作.

然而,它曾经没有在iphone或ipad上被检测到,我认为它与视频上的东西有关,但是谁知道.

我尝试使用视口高度方法

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">
Run Code Online (Sandbox Code Playgroud)

但这似乎也没有解决它!

所以请关于如何在iDevices上检测页面底部,请有人分享一些信息!

谢谢!!

欧文

iphone scroll detect

6
推荐指数
1
解决办法
9336
查看次数

Selenium Webdriver是可检测的

我到处读到网站无法检测到用户正在使用硒网络驱动程序......但为什么呢?

例如,firefox中的webdriver插件为<html>元素添加了"webdriver属性" .所以<html>...转到<html webdriver="true">...

我很困惑...为什么不能检测到webdriver?

我写了一些Javascript来获取document.outerHTML ...并且有webdriver属性!=检测到了??

这是我在浏览器中使用Webdriver测试的代码,但没有:

<html>
<head>
  <script type="text/javascript">
  <!--
    function showWindow(){
      javascript:(alert(document.documentElement.outerHTML));
    }
  //-->
  </script>
</head>
<body>
  <form>
    <input type="button" value="Show outerHTML" onclick="showWindow()">
  </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么不可能检测到Webdriver吗?

javascript testing selenium webdriver detect

6
推荐指数
1
解决办法
7554
查看次数

如何使用swift检查网络速度

我搜索过太多关于网络可达性的页面(只有是或不可用),但我从未听说有人可以使用Swift xcode环境检测网络速度.我需要这个功能(检测一些主机的网络速度),有人能给我一个关于这个问题的线索

performance networking detect swift

6
推荐指数
1
解决办法
6497
查看次数

Android - 有可能检测到微笑吗?

是否有可能在Android相机预览上检测微笑?我知道有一个FaceDetector类,但我只能检查眼睛(来自FaceDetector.Face).任何SDK或示例?我知道这是可能的,因为S3在Smile探测器中构建,但在Google Play商店中找不到任何其他示例.

谢谢.

camera android detect

5
推荐指数
1
解决办法
3117
查看次数

检测到的Windows MATLAB上的非最大抑制

我目前在CCTV图像中检测头部.我正在使用HOG检测器+ SVM,我正在使用滑动窗口技术来检测磁头.当然,当我缩放图像时,我有多个同一头的检测/边界框.我知道我必须使用非最大值抑制来选择其中最好的一个,我尝试按照以下链接:http: //quantombone.blogspot.com/2011/08/blazing-fast-nmsm-from -exemplar-svm.html

但是,我无法理解如何获得每个滑动窗口的分数.有人可以向我解释一下吗?换句话说,我有边界框pts,我知道我必须设置0.5的重叠,但我没有每个边界框的分数.

matlab detect computer-vision sliding-window matlab-cvst

5
推荐指数
1
解决办法
5902
查看次数