小编Dan*_*Dan的帖子

正确的包命名用于使用Go语言进行测试

我在Go中看到了几种不同的测试包命名策略,并想知道每种方法的优缺点以及我应该使用哪种方法.

策略1:

文件名:github.com/user/myfunc.go

package myfunc
Run Code Online (Sandbox Code Playgroud)

测试文件名:github.com/user/myfunc_test.go

package myfunc
Run Code Online (Sandbox Code Playgroud)

有关示例,请参阅bzip2.

策略2:

文件名:github.com/user/myfunc.go

package myfunc
Run Code Online (Sandbox Code Playgroud)

测试文件名:github.com/user/myfunc_test.go

package myfunc_test

import (
    "github.com/user/myfunc"
)
Run Code Online (Sandbox Code Playgroud)

有关示例,请参见电线.

策略3:

文件名:github.com/user/myfunc.go

package myfunc
Run Code Online (Sandbox Code Playgroud)

测试文件名:github.com/user/myfunc_test.go

package myfunc_test

import (
    . "myfunc"
)
Run Code Online (Sandbox Code Playgroud)

请参阅字符串以获取示例.

Go标准库似乎使用了策略1和2的混合.我应该使用哪三个?这是一个痛苦附加package *_test到我的测试包,因为它意味着我无法测试我的包私有方法,但也许有一个我不知道的隐藏的优势?

unit-testing go

85
推荐指数
3
解决办法
2万
查看次数

你什么时候在方括号内环绕routerLink?

Angular 2 备忘单显示routerLink模板中有和没有方括号的示例:

<a routerLink="/path">
<a [routerLink]="[ '/path', routeParam ]">
<a [routerLink]="[ '/path', { matrixParam: 'value' } ]">
<a [routerLink]="[ '/path' ]" [queryParams]="{ page: 1 }">
<a [routerLink]="[ '/path' ]" fragment="anchor">
Run Code Online (Sandbox Code Playgroud)

功能有什么不同?

angular

24
推荐指数
2
解决办法
2777
查看次数

如何在python字符串中将负零始终格式化为正零?

我有以下格式化字符串:

'%.2f' % n
Run Code Online (Sandbox Code Playgroud)

如果n是负的零(-0,-0.000等)的输出将是-0.00.

如何使输出始终0.00为负值和正零值n

(实现这一点是相当直接的,但我找不到我称之为简洁的pythonic方式.理想情况下,我不知道有一个字符串格式化选项.)

python

23
推荐指数
2
解决办法
8599
查看次数

如何在不必同时提供`node_modules`中的所有文件的情况下为AngularJS 2应用程序提供服务?

我正在尝试运行Angular 2 种子应用程序.不幸的是,npm install放置了大量的文件node_modules,我认为我还必须与种子应用程序代码一起提供服务.

如果我只需要一些用于应用程序的工作,我不想要提供所有这些静态文件.有没有办法只服务我真正需要的那些?

我问的原因是因为Google App Engine开发环境(dev_appserver.py)对其可以提供的文件数量设置了限制,并且生产环境对可以上载的文件的总大小有限制.上传兆字节的不必要文件会很惭愧.

google-app-engine npm angular

22
推荐指数
2
解决办法
3217
查看次数

最好通过keys_only = True查询,然后get_multi或只查询完整查询?

我正在使用带有线程安全模式的python 2.7的NDB.

我知道查询具有NDB的实体不使用本地缓存或内存缓存,而是直接访问数据存储区,而不是通过密钥名称获取.(如果这个前提不正确,问题的其余部分可能是多余的.)

因此,一个好的范例是仅使用keys_only = True进行查询,然后执行get_multi以获取完整的实体?

好处将是keys_only =真查询比keys_only =假快得多,get_multi可能只是打的memcache&致电get_multi您的实体现在都保存在情况下,你需要再次进行查询内存缓存.

缺点是您现在有一个RPC查询调用+ get_multi调用,我认为您可以在一个get_multi中调用实体的方式有限,因此您的有效查询大小可能会受到限制.

你怎么看?我们应该只使用keys_only = True查询然后执行get_multi吗?是否存在某些最小和最大查询大小限制,使得此技术不仅仅像执行返回完整实体的查询一样有效?

python google-app-engine app-engine-ndb

10
推荐指数
1
解决办法
2121
查看次数

如何对Google App Engine Go HTTP处理程序进行单元测试?

Google App Engine Go SDK的1.8.6版支持本地单元测试.该appengine/aetest软件包允许我创建一个Context单元测试.

我如何使用它net/http/httptest来测试我的HTTP处理程序?

google-app-engine unit-testing go

9
推荐指数
1
解决办法
2333
查看次数

如何干净地测试 Mypy 中对象的相等性而不产生错误?

我有以下功能:

import pandas as pd

def eq(left: pd.Timestamp, right: pd.Timestamp) -> bool:
    return left == right
Run Code Online (Sandbox Code Playgroud)

当我通过 Mypy 运行它时,出现以下错误:

错误:从声明为返回“bool”的函数返回任何内容

我相信这是因为 Mypy 不知道pd.Timestamp所以将其视为Any. (使用 Mypyreveal_type函数表明 Mypy 将leftright视为Any。)

处理这个问题以阻止 Mypy 抱怨的正确方法是什么?

python mypy python-typing

9
推荐指数
1
解决办法
774
查看次数

如何使用angular-cli&ng-bootstrap自定义Bootstrap 4 SCSS变量?

我正在使用angular-cli构建一个Angular 4应用程序.我想使用ng-bootstrap来包含Bootstrap 4.但是我也想在我的构建中自定义Bootstrap的scss变量,如http://v4-alpha.getbootstrap.com/getting-started/options/所述.

我怎样才能做到这一点?

twitter-bootstrap-4 angular-cli ng-bootstrap angular

8
推荐指数
2
解决办法
6597
查看次数

如何在App Engine开发服务器上获取Google Cloud Storage文件对象的服务URL?

我有一个python App Engine应用程序并使用Google Cloud Storage API保存文件.但是我需要获取每个文件的服务URL.

在生产时,很容易弄清楚我所提供的服务URL是什么http://commondatastorage.googleapis.com,/bucket/path/to/file.txt因为我已经拥有了我的文件的存储桶名称和路径.

如何确定开发服务器上的服务URL是什么?

对于使用现在可以使用blobstore或云存储引用的图像来执行此操作似乎很简单images.get_serving_url.

如何以与开发和生产App Engine环境兼容的方式找出所有文件的服务URL,而不仅仅是图像?

python google-app-engine google-cloud-storage

7
推荐指数
1
解决办法
3323
查看次数

如何取消订阅RxJS 5可观察?

我一直在使用这种模式:

func myObservable() Observable<boolean> {
    ...
}

func myFunc() {
    myObservable().subscribe((cond: boolean) => {
        if (cond) {
            // How do I unsubscribe here?
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是我看不到任何取消订阅的方法,因此可能会造成内存泄漏.

我问的原因是因为Angular 2的HTTP客户端使用相同的模式 - 虽然我相信它会以某种方式自动取消订阅,我也想这样做.

javascript angularjs typescript rxjs5 angular

7
推荐指数
1
解决办法
1666
查看次数