我有一个简单的线程,将计数器与限制进行比较,并在计数器超出限制时调用URL。
我想对这个线程进行单元测试,断言当值超过限制时调用URL。
怎么可以这样做?我查看过请求 - 模拟,但它似乎仅在请求来自当前代码块时才起作用。
要测试的代码:
class SimpleCounter(threading.Thread):
# Omitted ctor & other methods for brevity
def run(self):
limit = 5
while not self.must_stop:
if self.value > limit:
requests.get("http://localhost/alarm.cgi")
time.sleep(1)
测试代码:
def test_simplecounterapp():
counter = SimpleCounter()
counter.start()
for i in range(6):
counter.increment()
# assert http://localhost/alarm.cgi is indeed called
答案 0 :(得分:0)
回答我自己的问题。
我通过模拟urllib2.urlopen并断言模拟被调用来解决了这个问题。