{"id":14070798,"url":"https://github.com/b-gonzalez/Fluent-VBA","last_synced_at":"2025-07-30T08:32:37.148Z","repository":{"id":59620226,"uuid":"404567157","full_name":"b-gonzalez/Fluent-VBA","owner":"b-gonzalez","description":"An object-oriented fluent unit testing library for VBA","archived":false,"fork":false,"pushed_at":"2024-12-03T17:46:38.000Z","size":11403,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-03T17:52:11.492Z","etag":null,"topics":["fluent-api","object-oriented-programming","oop","tdd","tdd-vba","unit-testing","vba"],"latest_commit_sha":null,"homepage":"","language":"VBA","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b-gonzalez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-09T03:01:50.000Z","updated_at":"2024-11-29T12:09:56.000Z","dependencies_parsed_at":"2024-01-03T00:30:14.972Z","dependency_job_id":"e7b675f6-9418-405b-b7b6-5ba1bc3ddf55","html_url":"https://github.com/b-gonzalez/Fluent-VBA","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-gonzalez%2FFluent-VBA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-gonzalez%2FFluent-VBA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-gonzalez%2FFluent-VBA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-gonzalez%2FFluent-VBA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b-gonzalez","download_url":"https://codeload.github.com/b-gonzalez/Fluent-VBA/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228110838,"owners_count":17871242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fluent-api","object-oriented-programming","oop","tdd","tdd-vba","unit-testing","vba"],"created_at":"2024-08-13T07:08:06.087Z","updated_at":"2025-07-30T08:32:37.136Z","avatar_url":"https://github.com/b-gonzalez.png","language":"VBA","funding_links":[],"categories":["VBA"],"sub_categories":[],"readme":"# Fluent-VBA\nFluent VBA is an object-oriented [fluent](https://en.wikipedia.org/wiki/Fluent_interface) unit testing library for VBA. This project was inspired by [Fluent Assertions](https://fluentassertions.com/introduction) in C#.\n\nFluent APIs are intended to be read like natural language. So instead of having something like:\n\n```vba\nOption Explicit\n\nSub NormalUnitTestExample\n    Dim result as long\n    Dim Assert as cUnitTester\n    \n    '//Arrange\n    Set Assert = New cUnitTester\n    \n    '//Act\n    result = returnVal(5) 'returns the value provided as an argument\n    \n    '//Assert\n    Assert.Equal(Result,5)\nEnd Sub\n\nPublic Function returnVal(ByVal value As Variant) As Variant\n    returnVal = value\nEnd Function\n```\n \nYou can have code that reads more naturally like so:\n\n```vba\nOption Explicit\n\nSub FluentUnitTestExample1\n    Dim Result As cFluent\n    Dim returnedResult As Variant\n    \n    '//Arrange\n    Set Result = New cFluent\n    returnedResult = returnVal(5)\n    \n    '//Act\n    Result.TestValue = returnedResult\n    \n    '//Assert\n    Debug.Assert Result.Should.Be.EqualTo(5)\n    Debug.Assert Result.Should.Be.GreaterThan(4)\nEnd Sub\n```\n\nOr, arguably, even more naturally using cFluentOf objects like this:\n\n```vba\nOption Explicit\n\nSub FluentUnitTestExample2()\n    Dim Result As cFluentOf\n    Dim returnedResult As Variant\n    \n    '//arrange\n    Set Result = New cFluentOf\n    returnedResult = returnVal(5)\n    \n    '//Act\n    With Result.Of(returnedResult)\n        '//Assert\n        Debug.Assert .Should.Be.EqualTo(5)\n        Debug.Assert .Should.Be.GreaterThan(4)\n    End With\n    \n    '//Or like this\n    \n    '//Act \u0026 Assert\n    Debug.Assert Result.Of(returnedResult).Should.Be.EqualTo(5)\n    Debug.Assert Result.Of(returnedResult).Should.Be.GreaterThan(4)\nEnd Sub\n```\n\n# Getting started\n\nTo get started with Fluent VBA you can see the [getting started page](https://github.com/b-gonzalez/Fluent-VBA/wiki/Getting-started) on the wiki.\n\n# Contacting me\n\nYou can contact me at b.gonzalez.programming@gmail.com.\n\n# Contributing to Fluent VBA\n\nI'm open to external contributions for Fluent VBA. I do need to work on a style guide to determine how I'd like such contributions to be implemented. I also expect any contributions to have unit tests using the Fluent VBA library.\n\n# Feature requests\n\nYou are free to contact me regarding feature requests as long as you understand that I'm not obligated to implement them. I expect messages to be polite, respectful, and without a sense of entitlement. As long as you do those things, I'm happy to hear what you have to say.\n\n# Final notes\n\nThe API is in a good and usable state. Overall I'm pretty happy with the API's internal and external design. As of right now, I only anticipate internal changes and feature enhancements. So the design of the API should be relatively stable. I'd be open to changing certain design aspects of the API if I found a good reason to do so. Naturally, this is dependant on time and availability on my part however.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb-gonzalez%2FFluent-VBA","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb-gonzalez%2FFluent-VBA","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb-gonzalez%2FFluent-VBA/lists"}