0

我是单元测试的新手。我想知道您将如何使用 python 单元测试对下面的代码进行单元测试。您可以使用任何类型的框架进行测试,但请务必说明原因并详细说明。真的很感谢大家的帮助。

顺便说一句,只要它现在正在做的事情,您就可以对代码进行更改。无论如何都是BS:P

pyg = 'ay'

original = raw_input('Enter a word:')

word = original.lower()

first = word[0]

    if first == "a" and "e" and "i" and "o" and "u":
        new_word = word + pyg
        print new_word
    else:
        consonant_fix = word[1:]
        new_word = consonant_fix + word[0] + pyg
        print new_word
4

1 回答 1

7

我认为这不是单元测试的好候选。

I/O 应该无关紧要。

最好将其重构为一个接收字符串、对其进行操作并返回一个新字符串的函数。然后您可以使用特定输入编写单元测试来检查您想要的行为。

如所写,您的代码不可测试。

这是我重写它的方法:

def rearrange(original, pyg):
    word = original.lower()
    first = word[0]
    if first == "a" and "e" and "i" and "o" and "u":
        new_word = word + pyg
    else:
        consonant_fix = word[1:]
        new_word = consonant_fix + word[0] + pyg
    return new_word


if __name__ == '__main__':
    pyg = 'ay'
    original = raw_input('Enter a word:')
    print rearrange(original, pyg)

rearrange()现在可以使用不同的输入测试此功能。

于 2013-07-03T21:27:29.460 回答