Als «mocking» getaggte Fragen

Durch Verspotten und Fälschen können Code oder Komponenten isoliert werden, um sicherzustellen, dass Komponententests nur für die testbare Codeeinheit ausgeführt werden, ohne dass andere Komponenten oder Abhängigkeiten einer Anwendung tatsächlich verwendet werden. Das Verspotten unterscheidet sich vom Fälschen darin, dass ein Schein überprüft werden kann, um die Ergebnisse eines Tests zu bestätigen.

3
Mock-Attribute in Python-Mock?
Ich habe eine ziemlich schwierige Zeit mockin Python: def method_under_test(): r = requests.post("http://localhost/post") print r.ok # prints "<MagicMock name='post().ok' id='11111111'>" if r.ok: return StartResult() else: raise Exception() class MethodUnderTestTest(TestCase): def test_method_under_test(self): with patch('requests.post') as patched_post: patched_post.return_value.ok = True result = method_under_test() self.assertEqual(type(result), StartResult, "Failed to return a StartResult.") Der Test …


4
Python: Verspotten eines Kontextmanagers
Ich verstehe nicht, warum ich NamedTemporaryFile.name in diesem Beispiel nicht verspotten kann: from mock import Mock, patch import unittest import tempfile def myfunc(): with tempfile.NamedTemporaryFile() as mytmp: return mytmp.name class TestMock(unittest.TestCase): @patch('tempfile.NamedTemporaryFile') def test_cm(self, mock_tmp): mytmpname = 'abcde' mock_tmp.__enter__.return_value.name = mytmpname self.assertEqual(myfunc(), mytmpname) Testergebnisse in: AssertionError: <MagicMock name='NamedTemporaryFile().__enter__().name' id='140275675011280'> != …
76 python  mocking 

5
Wie man Benutzer und Anfragen in Django verspottet
Ich habe Django-Code, der mit Anforderungsobjekten oder Benutzerobjekten interagiert. Zum Beispiel so etwas wie: foo_model_instance = models.get_or_create_foo_from_user(request.user) Wenn Sie mit der Django-Python-Shell oder in einem Unittest testen würden, was würden Sie dort weitergeben? Hier reicht einfach ein Benutzerobjekt aus, aber die Notwendigkeit eines Scheinanforderungsobjekts tritt auch häufig auf. Für die …

4
Mock oder Stub für verketteten Anruf
protected int parseExpire(CacheContext ctx) throws AttributeDefineException { Method targetMethod = ctx.getTargetMethod(); CacheEnable cacheEnable = targetMethod.getAnnotation(CacheEnable.class); ExpireExpr cacheExpire = targetMethod.getAnnotation(ExpireExpr.class); // check for duplicate setting if (cacheEnable.expire() != CacheAttribute.DO_NOT_EXPIRE && cacheExpire != null) { throw new AttributeDefineException("expire are defined both in @CacheEnable and @ExpireExpr"); } // expire time defined in @CacheEnable …

10
Java InputStream verspotten
Bitte geben Sie Zeiger an, damit ich das Java InputStream-Objekt verspotten kann. Dies ist die Codezeile, die ich verspotten möchte: InputStreamReader inputData = new InputStreamReader(System.in); bufferdReader = new BufferedReader(inputData); bufferdReader.readLine();
74 java  mocking 

6
Wie man Funktionen im selben Modul mit jest verspottet
UPDATE: Ich habe diesen und andere Ansätze in https://github.com/magicmark/jest-how-do-i-mock-x/blob/master/src/function-in-same-module/README zusammengefasst. md Was ist der beste Weg, um das folgende Beispiel richtig zu verspotten? Das Problem ist, dass nach dem Import fooder Verweis auf das Original nicht verspottet bleibt bar. module.js: export function bar () { return 'bar'; } export function …

3
Verwenden von Pythons Mock-Patch.object, um den Rückgabewert einer Methode zu ändern, die in einer anderen Methode aufgerufen wird
Ist es möglich, einen Rückgabewert einer Funktion zu verspotten, die in einer anderen Funktion aufgerufen wird, die ich testen möchte? Ich möchte, dass die verspottete Methode (die in vielen Methoden, die ich teste, aufgerufen wird) bei jedem Aufruf meine angegebenen Variablen zurückgibt. Zum Beispiel: class Foo: def method_1(): results = …

7
Verspottung der boto3 S3-Clientmethode Python
Ich versuche, eine Singluar-Methode aus dem boto3 s3-Clientobjekt zu verspotten, um eine Ausnahme auszulösen. Aber ich brauche alle anderen Methoden, damit diese Klasse normal funktioniert. Auf diese Weise kann ich einen einzelnen Ausnahmetest testen, wenn beim Ausführen einer upload_part_copy ein Fehler auftritt 1. Versuch import boto3 from mock import patch …

12
Die Scheininstanz ist nach der @ Mock-Annotation null
Ich versuche diesen Test auszuführen: @Mock IRoutingObjHttpClient routingClientMock; @Mock IRoutingResponseRepository routingResponseRepositoryMock; @Test public void testSendRoutingRequest() throws Exception { CompleteRoutingResponse completeRoutingResponse = new CompleteRoutingResponse(); completeRoutingResponse.regression_latencyMillis = 500L; Mockito.when(routingClientMock.sendRoutingRequest(any(RoutingRequest.class))).thenReturn(completeRoutingResponse); RoutingObjHttpClientWithReRun routingObjHttpClientWithReRun = new RoutingObjHttpClientWithReRun (routingClientMock, routingResponseRepositoryMock); ... } aber ich bekomme NullPointerException für: Mockito.when(routingClientMock. Was vermisse ich?

7
Wie man in RSpec beliebig oft "any_instance" "should_receive" sagt
Ich habe einen Import-Controller in Rails, der mehrere CSV-Dateien mit mehreren Datensätzen in meine Datenbank importiert. Ich möchte in RSpec testen, ob die Datensätze tatsächlich mithilfe von RSpec gespeichert werden: <Model>.any_instance.should_receive(:save).at_least(:once) Ich erhalte jedoch die Fehlermeldung: The message 'save' was received by <model instance> but has already been received by …

6
Statische Methoden verspotten
Vor kurzem habe ich begonnen, Moq für Unit-Tests zu verwenden. Ich benutze Moq, um Klassen zu verspotten, die ich nicht testen muss. Wie gehen Sie normalerweise mit statischen Methoden um? public void foo(string filePath) { File f = StaticClass.GetFile(filePath); } Wie könnte diese statische Methode StaticClass.GetFile()verspottet werden? PS Ich würde …
73 c#  unit-testing  mocking  moq 

2
Python Mock - Patchen einer Methode, ohne die Implementierung zu behindern
Gibt es eine saubere Möglichkeit, ein Objekt zu patchen, damit Sie die assert_call*Helfer in Ihrem Testfall erhalten, ohne die Aktion tatsächlich zu entfernen? Wie kann ich beispielsweise die @patchZeile ändern , um den folgenden Test zu bestehen: from unittest import TestCase from mock import patch class Potato(object): def foo(self, n): …
73 python  mocking 

7
So testen oder verspotten Sie den Inhalt von "if __name__ == '__main__'"
Angenommen, ich habe ein Modul mit folgenden Eigenschaften: def main(): pass if __name__ == "__main__": main() Ich möchte einen Unit-Test für die untere Hälfte schreiben (ich möchte eine 100% ige Abdeckung erreichen). Ich habe das eingebaute runpy-Modul entdeckt, das den Import / __name__Setting-Mechanismus ausführt, aber ich kann nicht herausfinden, wie …

1
Proxyquire, Rewire, SandboxedModule und Sinon: Vor- und Nachteile
Beim Verspotten von Knotenabhängigkeiten bin ich auf folgende Bibliotheken gestoßen: Proxyquire Neu verdrahten SandboxedModule Sinon Sie scheinen alle mehr oder weniger dasselbe zu tun: Sie können require()Anrufe verspotten (mit Ausnahme von Sinon, das so ziemlich alles verspottet). Sie scheinen alle ein ziemlich ausgeklügeltes Setup zu erfordern, wobei die genaue Syntax …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.