小编caf*_*00d的帖子

在python 2的unittest模块中模拟raw_input()

我正在尝试了解如何使用 python 的单元测试框架

我有一段看起来像这样的代码——

while True:
    filename = raw_input('Enter file')
    if os.path.exists(filename):
        break
    else:
        print "That file does not exist"
return filename
Run Code Online (Sandbox Code Playgroud)

有人可以帮我开发 unittest 模块来测试这个。我问这个问题是为了学习如何使用单元测试(我正在尝试学习 TTD:测试驱动开发)

到目前为止,我已经想出了这个...... import unittest import os.path

类 TestFunctions(unittest.TestCase):

def setUp(self):
    self.prompt = 'Enter filename: '

def test_get_file(self):

    # TODO make sure empty filename argument requests for new filename
    filename = find_author.get_valid_filename(self.prompt)
    self.assertTrue(<EXPRESSION?>)

    # TODO make sure valid filename returns the "filename"
    # TODO make sure invalid filename prompts that file does not exit and requests …
Run Code Online (Sandbox Code Playgroud)

python unit-testing input

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

如何在已经存在但不能在java中修改的类周围创建接口

假设我的代码中已经有两个类:

class SomeOrder {
  String getOrderId() { return orderId; }
}

class AnotherOrder {
  String getOrderId() { return orderId; }
}
Run Code Online (Sandbox Code Playgroud)

如何围绕这两个类创建一个接口:

interface Order {
    String getOrderId();
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我将修改代码,以便SomOrder implements OrderAnotherOrder implements Order,但这里的前提条件是,他们在我无法控制或编辑一个包属于(即它们来自外部的jar).

我的算法目前看起来像这样:

void sorter(List<SomeOrder> orders) {
    ... <custom sort logic> ...
    someOrder.getOrderId();
}

void sorter(List<AnotherOrder> orders) {
    ... <custom sort logic> ...
    someOrder.getOrderId();
}
Run Code Online (Sandbox Code Playgroud)

使用单一界面我可以写:

void sorter(List<Order> orders) {
        ... <custom sort logic> ...
        order.getOrderId();
}
Run Code Online (Sandbox Code Playgroud)

java oop class-design interface object-oriented-analysis

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

为什么他们不使用int来定义常量而不是使用位移运算符?

go源代码中,常量bucketCnt是8.为什么用右移3次定义而不是仅仅定义为8.我理解这1 << x意味着2^x.

但是,我的问题是......

// Maximum number of key/value pairs a bucket can hold.
bucketCntBits = 3
bucketCnt     = 1 << bucketCntBits
Run Code Online (Sandbox Code Playgroud)

比...更好

// Maximum number of key/value pairs a bucket can hold.
bucketCnt     = 8
Run Code Online (Sandbox Code Playgroud)

go

0
推荐指数
1
解决办法
87
查看次数