小编Fre*_*oth的帖子

Jersey 2.0相当于POJOMappingFeature

我有一些使用Jersey <2.0的经验.现在我正在尝试构建一个war应用程序来提供JSON Webservice API.

我现在正在努力配置Moxy并且接缝比添加的更复杂

    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
Run Code Online (Sandbox Code Playgroud)

回到Jersey <2.0的web.xml.

是否有可能只说"请添加json支持"?

目前我只是在服务器上没有任何日志条目的情况下得到很多内部服务器错误错误,只是想"我必须做一些完全错误的事情,这可不是那么难"

任何人都可以给我一个提示吗?

java json web-services moxy jersey-2.0

34
推荐指数
3
解决办法
4万
查看次数

如何使用nosetests从python覆盖率报告中排除模拟包

我目前尝试使用模拟库在python中编写一些基本的鼻子单元测试.

在完成了一些基本的例子后,我现在尝试使用nosetests --with-coverage,现在我有了模拟包,我试图'模拟掉'的包显示在覆盖率报告中.是否有可能排除这些?

这是我要测试的类:

from imaplib import IMAP4

class ImapProxy:
    def __init__(self, host):
        self._client = IMAP4(host)
Run Code Online (Sandbox Code Playgroud)

和测试用例:来自模拟导入补丁

from ImapProxy import ImapProxy

class TestImap:
    def test_connect(self):
        with patch('ImapProxy.IMAP4') as imapMock:
            proxy = ImapProxy("testhost")
            imapMock.assert_called_once_with("testhost")
Run Code Online (Sandbox Code Playgroud)

我现在得到以下输出 nosetests --with-coverage

.
Name         Stmts   Miss  Cover   Missing
------------------------------------------
ImapProxy        4      0   100%   
imaplib        675    675     0%   23-1519
mock          1240    810    35%   [ a lot of lines]
Run Code Online (Sandbox Code Playgroud)

有没有办法排除模拟包和imaplib包,不必手动将除了那些包之外的所有包列入白名单--cover-package=PACKAGE

感谢Ned Batchelder,我现在知道.coveragerc文件了,谢谢!

我创建了一个包含以下内容的.coveragerc文件:

[report]
omit = *mock*
Run Code Online (Sandbox Code Playgroud)

现在我在覆盖率报告中的模拟输出是:

mock                     1240   1240     0%   16-2356 …
Run Code Online (Sandbox Code Playgroud)

python code-coverage mocking nose python-mock

30
推荐指数
2
解决办法
1万
查看次数

茉莉花运行和等待实际上做什么?

我使用jasmine运行并等待测试异步操作.一切正常,但我不太确定幕后会发生什么.

jasmine文档说明了我添加了三个日志语句的以下示例.

describe("Asynchronous specs", function() {
  var value, flag;

  it("should support async execution of test preparation and exepectations", function() {

    runs(function() {
      flag = false;
      value = 0;

      setTimeout(function() {
        flag = true;
      }, 500);
    });

    waitsFor(function() {
      value++;
      if(flag) {
          console.log("A");
      }
      return flag;
    }, "The Value should be incremented", 750);

    console.log("B");

    runs(function() {
      console.log("C");
      expect(value).toBeGreaterThan(0);
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

});

第一个runs,waitsFor对我来说非常清楚.Runs启动异步操作并waitsFor等待一个条件.

但是我不明白为什么第二次runs没有开始直到waitsFor完成.这waitsFor不是阻止电话.

我的猜测是waitsFor隐式阻止任何后续 …

javascript unit-testing jasmine

20
推荐指数
1
解决办法
2万
查看次数

如何使用python模拟库模拟基类

我尝试用mockpython编写一些单元测试.

例如,我有以下课程:

class TCPHandler(socketserver.BaseRequestHandler):
    def handle(self):
        self.data = self.request.recv(1024).strip()
Run Code Online (Sandbox Code Playgroud)

我只想测试这个handle方法.无需担心任何事情socketserver.BaseRequestHandler.例如,我想断言用参数handle调用.是否有可能用模拟做这样的事情?即用模拟替换基类?或者我是否偏离了这个想法?recv1024socketserver.BaseRequestHandler


有了ecatmur的答案(谢谢!)我首先尝试了以下内容:

patcher = patch.object(TCPHandler, '__bases__', (Mock,))
with patcher:
    patcher.is_local = True
    handler = TCPHandler()
    handler.handle()
Run Code Online (Sandbox Code Playgroud)

但现在handle不再被称为并且dir(handler)给出:

['assert_any_call', 'assert_called_once_with', 'assert_called_with', 'assert_has_calls', 'attach_mock', 'call_args', 'call_args_list', 'call_count', 'called', 'configure_mock', 'method_calls', 'mock_add_spec', 'mock_calls', 'reset_mock', 'return_value', 'side_effect']
Run Code Online (Sandbox Code Playgroud)

type(handler)<class 'mock.TCPHandler'>

我解释修补基类也将我的派生类变成了一个模拟.


我现在尝试了另一个想法:

mock = MagicMock()
TCPHandler.handle(mock)
#assertions
Run Code Online (Sandbox Code Playgroud)

然而,模拟似乎没有被称为.

python mocking

19
推荐指数
3
解决办法
1万
查看次数

Hibernate @OneToMany和UNIQUE约束

我正在使用Hibernate来存储有关文章引用的信息.我以这种方式注释我的课程,以表达两篇文章之间的关系.

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "CITATIONS")
private Set<Article> citingArticles = new HashSet<Article>();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是在citingArticle上使用UNIQUE约束转换的,这意味着我只能引用一篇文章来引用另一篇文章.

当然这不是我想要的,如何删除UNIQUE约束?

hibernate

8
推荐指数
1
解决办法
2721
查看次数

什么是泽西2.0相当于GZIPContentEncodingFilter

我正在将Jerset 1.x客户端项目迁移到Jersey 2.0.

我发现GZIPContentEncodingFilter不再存在了.有类似的东西吗?

我偶然发现GZIPEncoder但不确定如何插入它.

在泽西岛1.17我使用:

WebResource r = ...
r.register(new GZIPContentEncodingFilter());
Run Code Online (Sandbox Code Playgroud)

在Jersey 2.0中我搜索了一些想法:

WebTarget r = ...
r.register(new GZIPContentEncodingFilter());
Run Code Online (Sandbox Code Playgroud)

java jersey jersey-client jersey-2.0

8
推荐指数
1
解决办法
4664
查看次数

为什么我使用fprintf在这个C代码中收到警告?

fprintf(pFile,msg.c_str());
Run Code Online (Sandbox Code Playgroud)

为什么我在Xcode中收到警告:

Format string is not a string literal (potentially insecure)
Run Code Online (Sandbox Code Playgroud)

我假设我得到这个警告,以防止攻击是msg包含一些事情,如%s堆栈到屏幕流,直到它终止为null.fprintf在这种情况下有没有安全的使用方法?

c c++ xcode string-formatting

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

将文件名从循环文件写入文本文件

$fileEntries = [IO.Directory]::GetFiles("C:\Users\U0146121\Desktop\Example Data"); #where the file is located.
foreach($fileName in $fileEntries) 
{ 
 #write the file name to a text file.  
}  
Run Code Online (Sandbox Code Playgroud)

我需要将文件名写入循环中的文本文件,但我不知道如何.

最后,我将读取文本文件并在excel中搜索文件名.但是现在我必须首先编写.txt文件.

powershell

4
推荐指数
1
解决办法
9329
查看次数

看似基本的MongoDB GridFS命令......我找不到

如何通过mongo shell将文件"上传"到我的MongoDB以及如何检索同一个文件?我想知道,在这样做之后,甚至是什么输出.

我认为展示我所做的将表明我的尝试是多么愚蠢.

db.fs.files.insert("foo.txt");
Run Code Online (Sandbox Code Playgroud)

这似乎只是插入实际的文本而不是我想要的文件......并且要检索,我发现了

db.fs.files.retrieve()
Run Code Online (Sandbox Code Playgroud)

不是一个功能.,find()只显示给我...但是我想要打印实际文档的内容,无论是BINARY数据还是w/e我都不在乎,哈哈.

对于这种悲惨的尝试我感到很遗憾 - 但也许它表明我对GridFS可以做什么知之甚少 - 也许有人可以在使用之外为我清除这一点.

mongodb gridfs

2
推荐指数
1
解决办法
4400
查看次数