Python单元测试代码组织-Trello API测试

Python单元测试代码组织-Trello API测试,python,python-unittest,trello,Python,Python Unittest,Trello,我正在用Python测试一个TrelloAPI,我有两个文件,第一个文件包含用于创建随机名称的代码,还有3个用于POST、GET和PUT方法的函数 我的单元测试位于不同的文件中: import unittest from board_details import * class BoardDetails(unittest.TestCase): # create new board, get its details and then change board's name de

我正在用Python测试一个TrelloAPI,我有两个文件,第一个文件包含用于创建随机名称的代码,还有3个用于POST、GET和PUT方法的函数

我的单元测试位于不同的文件中:

import unittest
from board_details import *

class BoardDetails(unittest.TestCase):

    # create new board, get its details and then change board's name
    def test_post_board(self):
        name = nonce(10)
        result_post = post_board_name(name)
        self.assertEqual(result_post.json()['name'], name)
        self.assertEqual(result_post.status_code, 200)
        self.assertEquals(len(name), 10)

    def test_get_details(self):
        name = nonce(10)
        result_post = post_board_name(name)
        board_id = result_post.json()['id']
        result_get = get_board_detals(board_id)
        self.assertEqual(result_get.status_code, 200)
        self.assertEquals(len(name), 10)
        self.assertTrue('name', name)
        self.assertTrue(result_get.headers,'application/json')

    def test_put_new_name(self):
        name = nonce(10)
        result_put = put_new_board_name(name)
        self.assertEqual(result_put.json()['name'], name)
        self.assertEqual(result_put.status_code, 200)


if __name__ == '__main__':
    unittest.main()
它工作正常,所有测试都通过了。但我觉得还是有问题。有没有人能告诉我我写得对不对?
我重复了三次“name=nonce(10)”。我如何做才能有所不同?

您可以创建一个
设置
函数,该函数将在每次测试之前运行。比如:

def setUp(self):
    self.name = nonce(10)
然后更新测试以查看
self.name
,而不是
name

它不适用于这种情况,但有一个等效的
tearDown
函数将在每次测试后运行,您可以使用该函数清理任何文件、连接或测试可能创建的任何内容

也可以考虑将测试分解成单独的函数,而不是在一个测试中拥有多个断言。为了可读性,您可能会牺牲速度,但随着测试变得越来越复杂,故障排除会变得更容易。它将按原样工作,只是一个建议