如何在angular 2中测试私有函数?

class FooBar {

    private _status: number;

    constructor( private foo : Bar ) {
        this.initFooBar();

    }

    private initFooBar(){
        this.foo.bar( "data" );
        this._status = this.fooo.foo();
    }

    public get status(){
        return this._status;
    }

}

我找到了解决办法

将测试代码本身放在闭包中,或者在闭包中添加代码,以存储外部作用域中现有对象上局部变量的引用。 稍后使用工具提取测试代码。 http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/

如果你做过这个问题,请给我一个更好的解决方法。

P.S

大多数类似类型的问题的答案都没有给出问题的解决方案,这就是我问这个问题的原因 大多数开发人员说不要测试私有函数,但我不会说它们是错的还是对的,但我的案例中有必要测试私有函数。

为什么在这个千年里Python PEP-8应该指定最大行长度为79个字符?

几乎所有的代码编辑器都可以处理更长的代码行。如何使用包装应该是内容消费者的选择,而不是内容创造者的责任。

在这个时代,有什么(合理的)好的理由坚持使用79个汉字吗?

使用Criteria或HQL的优点和缺点是什么?Criteria API是一种在Hibernate中表达查询的面向对象的好方法,但有时Criteria queries比HQL更难理解/构建。

什么时候使用标准,什么时候使用HQL?在哪些用例中您更喜欢什么?还是说这只是个人口味的问题?

我必须维护大量经典的ASP页面,其中许多页面都有表格数据,根本没有排序功能。无论原始开发人员在数据库查询中使用的顺序是什么,都将使您陷入困境。

我想给这些页面添加一些基本的排序,我用javascript在客户端完成。我已经完成了对给定列上的给定表按照给定方向进行排序的基本脚本,只要表受到我们在这里遵循的某些约定的限制,它就能很好地工作。

我想为UI做的是用插入符号(^)指明排序方向,然后。什么?是否有一个特殊的字符是与插入符号相反的?字母v不太合适。或者,是否有其他角色配对我可以使用?

我从各种RSS订阅中阅读大量文本,并将它们插入到我的数据库中。

当然,在提要中使用了几种不同的字符编码,例如UTF-8和ISO 8859-1。

不幸的是,文本的编码有时会有问题。例子:

“Fußball”中的“ß”在我的数据库中应该是这样的:“Ÿ”。如果是“Ÿ”,则显示正确。 有时,“Fußball”中的“ß”在我的数据库中看起来像这样:“ß”。当然,这样就会显示错误。 在其他情况下,“ß”被保存为“ß”-因此没有任何变化。然后它也会被错误地显示。

我怎么做才能避免情况2和3?

我如何使所有的编码相同,最好是UTF-8?什么时候我必须使用utf8_encode(),什么时候我必须使用utf8_decode()(很清楚的效果是什么,但什么时候我必须使用函数?),什么时候我必须对输入什么都不做?

如何让所有编码都相同呢?也许使用函数mb_detect_encoding()?我能写一个函数吗?所以我的问题是:

如何找出文本使用的编码? 我如何将其转换为UTF-8 -无论旧的编码是什么?

这样的函数可行吗?

function correct_encoding($text) {
    $current_encoding = mb_detect_encoding($text, 'auto');
    $text = iconv($current_encoding, 'UTF-8', $text);
    return $text;
}

我已经测试过了,但是不行。有什么问题吗?

在搜索一个Python项目时,我发现有几行注释了# noqa。

import sys
sys.path.append(r'C:\dev')
import some_module   # noqa

noqa在Python中是什么意思?它只针对Python吗?

刚刚用Sublime Text(用Sublime Linter)打开了一个文件,注意到一个我以前从未见过的PEP8格式错误。原文如下:

urlpatterns = patterns('',
    url(r'^$', listing, name='investment-listing'),
)

它标记了第二个参数,url(…)开始的行

我要禁用这个检查在ST2,但我想知道我做错了什么之前,我忽略了它。你永远不知道,如果它看起来很重要,我甚至可能改变我的方式:)

这是我的代码,

for line in open('u.item'):
# Read each line

每当我运行这段代码,它给出以下错误:

UnicodeDecodeError: 'utf-8' codec无法解码字节0xe9在位置2892:无效的延续字节

我试图解决这个问题,并在open()中添加了一个额外的参数。代码如下:

for line in open('u.item', encoding='utf-8'):
# Read each line

但是它又给出了同样的错误。那我该怎么办呢?

那么,哪个更好,为什么?

def my_function():

or

def myFunction():

目前我们在PHP中使用以下命令在应用程序中将字符集设置为UTF-8。

因为这有点开销,所以我们希望将其设置为MySQL中的默认设置。我们可以在/etc/my.cnf或其他位置这样做吗?

SET NAMES 'utf8'
SET CHARACTER SET utf8

我在/etc/my.cnf中寻找了一个默认字符集,但那里没有关于字符集的任何内容。

在这一点上,我做了以下设置MySQL字符集和排序变量为UTF-8:

skip-character-set-client-handshake
character_set_client=utf8
character_set_server=utf8

这是正确的处理方式吗?